我正在尝试创建一个页面,该页面在Play Framework上发送带有附件的电子邮件。我首先需要知道如何发送简单的电子邮件。我正在关注
Apache Commons Userguide for Email。
Email email = new SimpleEmail();
email.setHostName("smtp-mail.outlook.com");
email.setSmtpPort(587);
email.setAuthenticator(new DefaultAuthenticator("email@outlook.com", "password"));
email.setSSLOnConnect(true);
email.setFrom("user@outlook.com");
email.setSubject("Subject");
email.setMsg("This is a test mail ... :-)");
email.addTo("add@outlook.com");
email.send();
执行异常:
[EmailException: Sending the email to the following server failed : smtp-mail.outlook.com:465]
即使将端口设置为
465
,我也不知道为什么说587
终端上的异常:
Caused by: com.sun.mail.util.MailConnectException: Couldn't connect to host, port: smtp-mail.outlook.com, 465; timeout 60000;
程序将端口号接受为
465
的原因是什么。使用gmail时也会发生相同的问题
最佳答案
在here中回答。
您必须登录Google的“ https://www.google.com/settings/security/lesssecureapps”并启用然后运行该程序。有用。
如果未启用,则会出现以下异常
org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.googlemail.com:465
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1421)
at org.apache.commons.mail.Email.send(Email.java:1448)
at EmailTest.main(EmailTest.java:19)
Caused by: javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:306)
at javax.mail.Service.connect(Service.java:156)
at javax.mail.Service.connect(Service.java:105)
at javax.mail.Transport.send0(Transport.java:168)
at javax.mail.Transport.send(Transport.java:98)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1411)
... 2 more
(这是用于gmail)
关于java - Play框架使用Apache Commons发送电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37445414/