enviar dele para outro
Eu tentei assim:
`
SimpleEmail mail = new SimpleEmail();
try {
mail.setFrom("thallyssonklein@yahoo.com");
mail.setSubject("E-mail exemplo");
mail.setMsg("E-mail de exemplo");
mail.setSSLOnConnect(true);
mail.setAuthentication("thallyssonklein@yahoo.com", "xxxx");
mail.setHostName("smtp.mail.yahoo.com");
mail.setSmtpPort(465);
mail.addTo("thallyssonklein@gmail.com");
mail.send();
} catch (EmailException e) {
e.printStackTrace();
}
`
e novamente não funcionou.
foi retornado isso:
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.mail.yahoo.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421)
at org.apache.commons.mail.Email.send(Email.java:1448)
at pacote.Main.actionPerformed(Main.java:44)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.yahoo.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:1411)
… 38 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)
… 45 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)
… 57 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)
… 63 more
Testei aqui e funcionou:
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class TestProgram {
public static void main(String[] args) {
SimpleEmail mail = new SimpleEmail();
try {
System.out.println("Enviando...");
mail.setFrom("edsonpassosjr@yahoo.com");
mail.setSubject("Sample email");
mail.setMsg("Sample msg");
mail.setSSLOnConnect(true);
mail.setAuthentication("edsonpassosjr@yahoo.com", "senhaaqui");
mail.setHostName("smtp.mail.yahoo.com");
mail.setSmtpPort(465);
mail.addTo("edsonpassosjr@outlook.com");
mail.send();
System.out.println("Email enviado.");
} catch (EmailException ex) {
ex.printStackTrace();
System.out.println("Email não enviado.");
}
}
}
Verifique se digitou os dados de acesso corretamente…
Eu já verifiquei, meus dados estão corretos agora eu fiz assim como tu fez e não funcionou:
`
package pacote;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class Main {
public static void main(String[] args) {
SimpleEmail mail = new SimpleEmail();
try {
System.out.println("Enviando...");
mail.setFrom("thallyssonklein@yahoo.com");
mail.setSubject("Sample email");
mail.setMsg("Sample msg");
mail.setSSLOnConnect(true);
mail.setAuthentication("thallyssonklein@yahoo.com", "xxxxxxx");
mail.setHostName("smtp.mail.yahoo.com");
mail.setSmtpPort(465);
mail.addTo("thallyssonklein@outlook.com");
mail.send();
System.out.println("Email enviado.");
} catch (EmailException ex) {
ex.printStackTrace();
System.out.println("Email não enviado.");
}
}
}
Enviando...
Email não enviado.org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.mail.yahoo.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421)
at org.apache.commons.mail.Email.send(Email.java:1448)
at pacote.Main.main(Main.java:19)
Caused by: javax.mail.MessagingException: Could not connect to SMTP host: smtp.mail.yahoo.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:1411)
... 2 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)
... 9 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)
... 21 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)
... 27 more
`
Desculpe a demora para responder…
Siga estes passos:
Opções da Internet -> Conteúdo -> Limpar estado de SSL.
`
Enviando...
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.mail.yahoo.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421)
at org.apache.commons.mail.Email.send(Email.java:1448)
at pacote.Main.main(Main.java:19)
Caused by: javax.mail.AuthenticationFailedException:
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
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:1411)
... 2 more
Email não enviado.
`
Difícil…
Tenta desativar o Firewall/Antivirus.
Eu desativei meu antivirus e então foi retornado isso no console:
`
Enviando...
Email enviado.
`
Porém eu abri a minha caixa de entrada do outlook e não encontrei nada.
Tenta ver na pasta Lixo; ou envie para outro email.
OFF-Topic: Qual IDE está usando?
Está no lixo, muito obrigado pela ajuda, então funcionou porém eu tenho algumas duvidas ainda:
1) A senha do e-mail que eu usarei para enviar os emails vai ficar no código fonte? Assim qualquer pessoa que ver o código saberá a senha do meu e-mail?
2)Por que a mensagem foi classificada como lixo pelo outlook e não funcionou com o gmail? Se um usuário que utilizar meu programa tiver um e-mail de algum desses provedores ele terá esses problemas?
-
Não precisa ficar no código. Você pode criar uma GUI que pede ao usuário para digitar a senha (ou pode fazer isso no modo de texto mesmo).
-
Por que foi classificada como lixo? Não sei como funciona o anti-spam.
[…] não funcionou com o gmail? a) As informações do server SMTP podem estar incorretas; b) O Gmail tem um “mecanismo” de segurança (leia mais: https://support.google.com/accounts/answer/6010255?hl=en)
[…] ele terá esses problemas? Difícil de responder.
Primeiramente, na primeira pergunta eu falei da senha do e-mail que eu vou usar para enviar, eu pretendo fazer uma JDialog onde o usuário digita o e-mail dele e clica em um JButton e então ele recebe a sua senha por e-mail, sobre o gmail, funciona corretamente na hora de receber mas meu objetivo é utilizar um gmail para enviar, e isso eu não estou conseguindo fazer, eu olhei este link, e fiz assim:
`
package pacote;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.SimpleEmail;
public class Main {
public static void main(String[] args) {
SimpleEmail mail = new SimpleEmail();
try {
System.out.println("Enviando...");
mail.setFrom("thallyssonklein@gmail.com");
mail.setSubject("Sample email");
mail.setMsg("Sample msg");
mail.setSSLOnConnect(true);
mail.setAuthentication("thallyssonklein@gmail.com", "xxxxxx");
mail.setHostName("smtp.gmail.com");
mail.setSmtpPort(465);
mail.addTo("thallyssonklein@yahoo.com");
mail.send();
System.out.println("Email enviado.");
} catch (EmailException ex) {
ex.printStackTrace();
System.out.println("Email não enviado.");
}
}
}
`
porém foi retornado isso no console:
`
Enviando...
Email não enviado.
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:1421)
at org.apache.commons.mail.Email.send(Email.java:1448)
at pacote.Main.main(Main.java:19)
Caused by: javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbuF
534-5.7.14 fi_2TaC0W7Adgyo0B9E0C-XvhGg0JRghCHD53dB8BLN5oDndfZgoFklKxzbgKeZVltDDSU
534-5.7.14 fz7R2_a32pJAivCbBnERvn_-19YzJurkc2VnOl2ZGPbIeQTIGIbxR81DO6BvKRII8I_RtW
534-5.7.14 kiQ7r0MxogJetPLO6Uoio9NJPFz8SypBrANKx3eZZAnnFbROBaBhcZgUXOj5tGq9Ls4vMz
534-5.7.14 5o227YGxdTjN3qAYme6oIbgLmjVjE> Please log in via your web browser and
534-5.7.14 then try again.
534-5.7.14 Learn more at
534 5.7.14 https://support.google.com/mail/answer/78754 b13sm6114684qkg.44 - gsmtp
at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:826)
at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:761)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:685)
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:1411)
... 2 more
`
Olá Thalisson eu etava com o mesmo problema com o Gmail e resolvi fazendo deste jeito, perdi muito tempo pesquisando na internet até achar esta solução que usa um tal de Authenticador só assim funcionou com o Gmail.
private void send_email(Usuario usuario) throws Exception {
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.from", "edersonsergiocoelho@gmail.com");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.ssl.enable", "false");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "587");
Authenticator authenticator = new Authenticator();
props.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
Session session = Session.getInstance(props, authenticator);
MimeMessage msg = new MimeMessage(session);
msg.setFrom();
msg.setRecipients(Message.RecipientType.TO, "edersonsergiocoelho@gmail.com");
// also tried @gmail.com
msg.setSubject("Recuperação De Senha - Suite ESC");
//msg.setSentDate(new Date());
msg.setText("Usuário: " + usuario.getLoginUsuario() + "\n" +
"Este e-mail foi enviado por: http://www.esctecnologia.com.br" + "\n" +
"Você recebeu esta e-mail, pois você esqueceu sua senha no ESC Tecnologia." + "\n\n" +
"------------------------------------------------" + "\n" +
"IMPORTANTE!" + "\n" +
"------------------------------------------------" + "\n" +
"Se você não solicitou este lembrete de senha, por favor IGNORE e EXCLUA este e-mail imediatamente." + "\n\n" +
"Dados Da Sua Conta:" + "\n" +
"Código Do Usuário: " + usuario.getCodigoUsuario() + "\n" +
"Nome Do Usuário: " + usuario.getLoginUsuario() + "\n" +
"Senha Do Usuário: " + usuario.getSenhaUsuario() + "\n" +
"Administrador: " + usuario.getAdministradorUsuario() + "\n"
);
Transport transport;
transport = session.getTransport("smtp");
transport.connect();
msg.saveChanges();
transport.sendMessage(msg, msg.getAllRecipients());
transport.close();
}
private class Authenticator extends javax.mail.Authenticator {
private PasswordAuthentication passwordAuthentication;
public Authenticator() {
String username = "edersonsergiocoelho@gmail.com";
String password = "teste";
passwordAuthentication = new PasswordAuthentication(username, password);
}
protected PasswordAuthentication getPasswordAuthentication() {
return passwordAuthentication;
}
}
tem que criar uma senha especifica pra isso se não, não funciona, comigo foi assim, não é a senha do email é uma senha criada lá em configurações na sua conta.
Como assim? Não é a senha que eu uso para fazer login?
Não é essa não Thallyson eu vou tentar lembrar o caminho aonde cadastra essa senha mais é nas configurações do Email é uma senha que você cria especifica pra isso só assim funcionou comigo com a senha normal do Login tambem não consegui.
Eu não tenho a mínima ideia de que senha é essa, e eu não registrei nenhuma, você sabe pelo menos o nome dessa senha pra mim pesquisar?
Encontrei amigo a senha se chama Senha de APP segue o link acesse já logado com sua conta no Gmail:
https://security.google.com/settings/security/apppasswords
é só criar e utilizar ela.