@Path("/")
public void send(Email email, List<UploadedFile> files) {
try {
email = validarDados(email);
Properties props = new Properties();
props.put("mail.smtp.host", email.getHost());
props.put("mail.smtp.socketFactory.port", email.getPort());
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", email.getPort());
logger.info("Enviando email para {} - {}", email.getToEmail(), email.getSubject());
Email finalEmail = email;
Session session = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(finalEmail.getUser(), finalEmail.getPass());
}
});
session.setDebug(true);
byte[] isoTitulo = email.getSubject().getBytes("ISO-8859-1");
String titulo = new String(isoTitulo, "UTF-8");
String conteudoRecebido;
if (email.getText() != null) {
conteudoRecebido = email.getText().replaceAll("%26", "&");
} else {
conteudoRecebido = "";
}
String conteudo = conteudoRecebido;
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(email.getFrom()));
Address[] toUser = InternetAddress.parse(email.getToEmail());
message.setRecipients(Message.RecipientType.TO, toUser);
message.setSubject(titulo);
if ((files == null) || (files.size() == 0)) {
message.setContent(conteudo, "text/html; charset=UTF-8");
} else {
BodyPart messageBodyPart = new MimeBodyPart();
messageBodyPart.setContent(conteudo, "text/html; charset=UTF-8");
Multipart multipart = new MimeMultipart();
multipart.addBodyPart(messageBodyPart);
for (UploadedFile file : files) {
messageBodyPart = new MimeBodyPart();
DataSource source = new ByteArrayDataSource(file.getFile(), file.getContentType());
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(file.getFileName());
multipart.addBodyPart(messageBodyPart);
}
message.setContent(multipart);
}
Transport.send(message);
logger.info("Email enviado com sucesso");
result.use(Results.http()).body("Ok");
} catch (MessagingException | IOException e) {
logger.error(e.getMessage());
result.use(Results.http()).body("Error: " + e.getMessage());
}
}
Estou usando o Vraptor simplemail 4.1.0-RC4 com vraptor 4.2.0-RC5 e java 8 , estou tentando fazer o teste e tenho seguinte erro:Nao foi possivel enviar o email!!javax.mail.MessagingException: Could not convert socket to TLS;nested exception is:javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested targetmeu production.properties:
vraptor.simplemail.main.server = smtp-ha.skymail.net.brvraptor.simplemail.main.port = 587vraptor.simplemail.main.tls = truevraptor.simplemail.main.auth = true
vraptor.simplemail.main.from=funcionarios.gama@gamaitaly.com.brvraptor.simplemail.main.username=funcionarios.gama@gamaitaly.com.brvraptor.simplemail.main.password=Gama2017metodo do construtor:
public void enviaPedido() {Email email = new SimpleEmail();email.setSubject("teste de email");try {
email.addTo("claudio.almeida@gamaitaly.com.br");
email.setMsg("teste de mensagem");mailer.send(email);System.out.println("ENVIADO COM SUCESSO!!");} catch (EmailException e) {// TODO Auto-generated catch blockSystem.out.println("Nao foi possivel enviar o email!!"+e.getCause());}result.redirectTo(this).compras();}
--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-vraptor@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.
vraptor.simplemail.main.from=funcionar...@gamaitaly.com.brvraptor.simplemail.main.username=funcionarios.gama@gamaitaly.com.brvraptor.simplemail.main.password=Gama2017
metodo do construtor:public void enviaPedido() {Email email = new SimpleEmail();email.setSubject("teste de email");try {email.addTo("claudio.almeida@gamaitaly.com.br");email.setMsg("teste de mensagem");mailer.send(email);System.out.println("ENVIADO COM SUCESSO!!");} catch (EmailException e) {// TODO Auto-generated catch blockSystem.out.println("Nao foi possivel enviar o email!!"+e.getCause());}result.redirectTo(this).compras();}
--
Você recebeu essa mensagem porque está inscrito no grupo "caelum-vraptor" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para caelum-vraptor+unsubscribe@googlegroups.com.
Para postar nesse grupo, envie um e-mail para caelum-...@googlegroups.com.
Acesse esse grupo em https://groups.google.com/group/caelum-vraptor.
Para mais opções, acesse https://groups.google.com/d/optout.