Boa tarde!
Galera, implementei um método para enviar e-mail. Mas, eu tenho que reenviar a página três vezes para o e-mail ser enviado corretamente.
Na primeira vez o e-mail não e enviado.
Atualizando a página F5
O e-mail é enviado sem os itens
Atualizando a página novamente
O e-mail é enviado juntamente com seus itens.
O que pode ser?
Meu método
// Lista Finalizar Orçamento
@User
@Get("/orcamento/confirmar/{id}")
public List<Orcamento> finalizar(Long id) {
// Include dos itens
result.include("itemList", dao2.listaitensdorcamento(id));
/*
* *******************************************************
* |: PRECISA RETIRAR ESSE MÉTODO DAQUI DE DENTRO :| |: SOMENTE PARA
* TESTE :| *******************************************************
*/
// Envia E-mail
String host = "smtp.gmail.com";
String login = "xxxx@gmail.com";
String senha = "xxxxx";
String remetente = "xxxxxr";
String assunto = "xxxxxxxxxx!";
for (Orcamento orcamento : dao.finalizar(id)) {
HtmlEmail email = new HtmlEmail();
try {
email.setHostName(host);
email.setAuthentication(login, senha);
email.setSmtpPort(587);
email.addTo(orcamento.getUsuario().getEmail());
email.setFrom(remetente);
email.setSubject(assunto);
String msg1 = "<html><title>CompreSempre - Orçamento Qualificado</title>"
+ "<body><h1> Mais um orçamento CompreSempre Finalizado </h1>"
+ "<h2> Orçamento Número : "
+ orcamento.getId()
+ " - Data: "
+ orcamento.getData_cadastro()
+ " - Hora: "
+ orcamento.getHora_cadastro()
+ " </h2>"
+ "<p> Usuário: "
+ orcamento.getUsuario().getNome()
+ " - E-mail: "
+ orcamento.getUsuario().getEmail()
+ " </p>"
+ " <p>Endereço: "
+ orcamento.getUsuario().getEndereço()
+ " - "
+ orcamento.getUsuario().getBairro().getNome()
+ " </p>" + "<h4> Item (s) do Orçamento</h4>";
String msg2 = "";
// Lista de produtos
// Cabeçalho
msg2 += ("<table border=\"1\">");
msg2 += ("<tr>");
msg2 += ("<td>");
msg2 += ("Produto");
msg2 += ("</td>");
msg2 += ("<td>");
msg2 += ("Menor Preço");
msg2 += ("</td>");
msg2 += ("<td>");
msg2 += ("Quantidade");
msg2 += ("</td>");
msg2 += ("<td>");
msg2 += ("Total");
msg2 += ("</td>");
msg2 += ("<td>");
msg2 += ("Empresa");
msg2 += ("</td>");
msg2 += ("</tr>");
// Fim do Cabeçalho
for (Item item : dao2.listaitensdorcamento(orcamento.getId())) {
msg2 += ("<tr>");
msg2 += ("<td>");
msg2 += (item.getProdutoEmpresa().getProduto().getNome());
msg2 += ("</td>");
msg2 += ("<td>");
msg2 += ("R$ " + item.getPreco_unit());
msg2 += ("</td>");
msg2 += ("<td>");
msg2 += (item.getQuantidade());
msg2 += ("</td>");
msg2 += ("<td>");
DecimalFormat format = new DecimalFormat();
format.setMaximumFractionDigits(2);
format.setMinimumFractionDigits(1);
msg2 += ("R$ " + format.format(item.getPreco_unit()
* item.getQuantidade()));
msg2 += ("</td>");
msg2 += ("<td>");
msg2 += (item.getProdutoEmpresa().getEmpresa()
.getFantasia());
msg2 += ("</td>");
msg2 += ("</tr>");
msg2 += ("<td>");
}
msg2 += ("</table>");
String msg3 = "<p> Caso não esteja visualizando corretamente esta mensagem, acesse - "
+ "<a > <font color=\"orange\">xxxxxr</a></p>"
+ "</body></html>";
email.setHtmlMsg(msg1 + msg2 + msg3);
// cópia para as empresas
for (Empresa empresa : dao3.listaTudo()) {
// empresa tem que estar ativa para receber e-mails
if (empresa.getSituacao().equals("1")) {
// Somente para as empresas que pertecem a atividade
// selecionada
if (empresa.getAtividade().getId() == (atividadeEmProgresso
.getAtividade().getId())) {
// Falta implementar - somente para as empresas da
// cidade
email.addCc(empresa.getEmail(),
empresa.getFantasia());
}
}
}
email.addBcc("xxxxxxxxxxxxxxxxx");
email.setSSL(true);
email.setDebug(true);
email.send();
} catch (EmailException e) {
System.err.print("...Erro:\n\t" + e.getMessage() + "\n\n");
e.printStackTrace();
}
}
// Retirar Orçamento da Sessão
OrcamentoEmProgresso.setOrcamento(null);
return dao.finalizar(id);
}
Valeus!