import java.net.MalformedURLException;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class CommonsMail {
public CommonsMail() throws EmailException, MalformedURLException {
enviaEmailSimples();
}
public void enviaEmailSimples() throws EmailException {
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do
// e-mail
email.addTo("vp.maciel@yahoo.com.br", "Vicente"); // destinatário
email.setFrom("vpmaciel@gmail.com", "Vicente Paulo Maciel"); // remetente
email.setSubject("Teste -> Email simples"); // assunto do e-mail
email.setMsg("Teste de Email utilizando commons-email"); // conteudo do
// e-mail
email.setAuthentication("vpmaciel", "senha");
email.setSmtpPort(465);
email.setSSLOnConnect(true);
System.out.println("Enviando");
email.send();
System.out.println("Pronto.");
}
public static void main(String[] args) throws EmailException,
MalformedURLException {
new CommonsMail();
}
}
Enviando
Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401)
at org.apache.commons.mail.Email.send(Email.java:1428)
at CommonsMail.enviaEmailSimples(CommonsMail.java:27)
at CommonsMail.<init>(CommonsMail.java:9)
at CommonsMail.main(CommonsMail.java:34)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.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:1961)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
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:1391)
... 4 more
Caused by: 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 sun.security.ssl.Alerts.getSSLException(Unknown Source)
at sun.security.ssl.SSLSocketImpl.fatal(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.Handshaker.fatalSE(Unknown Source)
at sun.security.ssl.ClientHandshaker.serverCertificate(Unknown Source)
at sun.security.ssl.ClientHandshaker.processMessage(Unknown Source)
at sun.security.ssl.Handshaker.processLoop(Unknown Source)
at sun.security.ssl.Handshaker.process_record(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:354)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
... 11 more
Caused by: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.validator.PKIXValidator.doBuild(Unknown Source)
at sun.security.validator.PKIXValidator.engineValidate(Unknown Source)
at sun.security.validator.Validator.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.validate(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkTrusted(Unknown Source)
at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(Unknown Source)
... 23 more
Caused by: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target
at sun.security.provider.certpath.SunCertPathBuilder.build(Unknown Source)
at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(Unknown Source)
at java.security.cert.CertPathBuilder.build(Unknown Source)
... 29 more
Não sei onde está o erro já verifiquei tudo.
Alguém pode me ajudar ?
[quote=paulo_1981][code]
import java.net.MalformedURLException;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class CommonsMail {
public CommonsMail() throws EmailException, MalformedURLException {
enviaEmailSimples();
}
public void enviaEmailSimples() throws EmailException {
SimpleEmail email = new SimpleEmail();
email.setHostName("smtp.gmail.com"); // o servidor SMTP para envio do
// e-mail
email.addTo("vp.maciel@yahoo.com.br", "Vicente"); // destinatário
email.setFrom("vpmaciel@gmail.com", "Vicente Paulo Maciel"); // remetente
email.setSubject("Teste -> Email simples"); // assunto do e-mail
email.setMsg("Teste de Email utilizando commons-email"); // conteudo do
// e-mail
email.setAuthentication("vpmaciel", "senha");
email.setSmtpPort(465);
email.setSSLOnConnect(true);
System.out.println("Enviando");
email.send();
System.out.println("Pronto.");
}
public static void main(String[] args) throws EmailException,
MalformedURLException {
new CommonsMail();
}
}
[/code][/quote]
Você está usando o gmail, ele tem um bloqueio próprio. Experimenta acessar o seu gmail e verifica se tem algum e-mail falando que um aplicativo de terceiros tentou acessa-lo. Tive este problema e era isso.
eu acho que a porta está errada… da uma confirmada
A porta está correta.
da uma olhada
[quote=himorrivel]da uma olhada
O Código está correto e é praticamente o código deste post.
Apenas os métodos de setSSL já estão obsoletos e eu troquei por email.setSSLOnConnect(true);
deixando ele “obsoleto” ele funciona, ou tb nao funciona?
Também não funciona.
O pior é que é fundamental este código funcionar para todos que queiram montar uma empresa de desenvolvimento Java.
Nunca pensei que essa tarefa desse tanto trabalho. Mas estou tentando tem que funcionar.
[quote=paulo_1981][code]
email.setAuthentication("vpmaciel", "senha");
[/code][/quote]
Experimenta colocar no username o email completo.
[quote=pmlm][quote=paulo_1981][code]
email.setAuthentication("vpmaciel", "senha");
[/code][/quote]
Experimenta colocar no username o email completo.[/quote]
Estou achando que o google está bloqueando a tentativa de conexão.
Enviando
Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.gmail.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1401)
at org.apache.commons.mail.Email.send(Email.java:1428)
at CommonsMail.enviaEmailSimples(CommonsMail.java:27)
at CommonsMail.<init>(CommonsMail.java:9)
at CommonsMail.main(CommonsMail.java:35)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465;
nested exception is:
java.net.SocketException: Connection reset
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1961)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:654)
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:1391)
... 4 more
Caused by: java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(Unknown Source)
at java.net.SocketInputStream.read(Unknown Source)
at sun.security.ssl.InputRecord.readFully(Unknown Source)
at sun.security.ssl.InputRecord.read(Unknown Source)
at sun.security.ssl.SSLSocketImpl.readRecord(Unknown Source)
at sun.security.ssl.SSLSocketImpl.performInitialHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at sun.security.ssl.SSLSocketImpl.startHandshake(Unknown Source)
at com.sun.mail.util.SocketFetcher.configureSSLSocket(SocketFetcher.java:549)
at com.sun.mail.util.SocketFetcher.createSocket(SocketFetcher.java:354)
at com.sun.mail.util.SocketFetcher.getSocket(SocketFetcher.java:211)
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1927)
... 11 more
Vou criar um arquivo arquivo .jar e tentar executar em outros locais com este código.
Acho que é algum problema externo como algum proxy, ou configuração do servidor gmail.
Grato.
Vou continuar tentando.
Resolvido.
O provedor de internet estava barrando o envio de e-mail.
Funcionou em outro provedor de internet.
Era o que eu tinha falado mesmo…Tive o mesmo problema quando tentei fazer isto…