Email pelo Amazon SES, pelo TOMCAT da Erro pela JRE não da !?

0 respostas
rafaelbtz

Salve, GUJ,

Estou tentando enviar um email pelo SES da Amazon, via tomcat não consegui de jeito nenhum, da sempre o seguinte erro

org.apache.commons.mail.EmailException: Sending the email to the following server failed : email-smtp.us-east-1.amazonaws.com:465
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1410)
	at org.apache.commons.mail.Email.send(Email.java:1437)
	at br.com.multinfe.servidor.danfe.TesteAWS.main(TesteAWS.java:95)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: email-smtp.us-east-1.amazonaws.com, port: 465;
  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 target
	at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1972)
	at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:642)
	at javax.mail.Service.connect(Service.java:317)
	at javax.mail.Service.connect(Service.java:176)
	at javax.mail.Service.connect(Service.java:125)
	at javax.mail.Transport.send0(Transport.java:194)
	at javax.mail.Transport.send(Transport.java:124)
	at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1400)
	... 2 more

Então eu fiz a classe com um Main e rodei pela JRE, a classe de teste é essa:

public class TesteAWS {
	static final String FROM = "---";   
	static final String TO = "---";  
	static final String BODY = "This email was sent through the Amazon SES SMTP interface by using Java.";
	static final String SUBJECT = "Amazon SES test (SMTP interface accessed using Java)";
	static final String SMTP_USERNAME = "---"; 
	static final String SMTP_PASSWORD = "---"; 
	static final String HOST = "email-smtp.us-east-1.amazonaws.com";    
	static final int PORT = 25;

	public static void main(String[] args) throws Exception {
		Email email = new SimpleEmail();

		email.setHostName(HOST);
		email.setAuthenticator(new DefaultAuthenticator(SMTP_USERNAME, SMTP_PASSWORD));
		email.setSSLOnConnect(true);
		email.setStartTLSEnabled(true);

		try {
			email.setFrom(FROM);
			email.setSubject("Email Teste");
			email.setMsg("Mensagem");
			email.addTo(TO);
			email.send();

		} catch (EmailException e) {
			e.printStackTrace();
		}
	}
}

Pela JRE vai! Ele não reclama do certificado, mas pela JDK não vai!

Alguem pode me ajudar a configurar a JDK pra rodar esse código igual a JRE faz?

Criado 13 de fevereiro de 2015
Respostas 0
Participantes 1