java - Play框架使用Apache Commons发送电子邮件

标签 java playframework-2.2

我正在尝试创建一个页面,该页面在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/

相关文章:

Java SSL : how to get client certificate information

java - Java 中的类可以克隆吗?

java - 如何用 Java 读取 XML 文件?

json - 将任何Scala对象转换为JSON

scala - Json Coast to Coast Play框架: Serializing Joda DateTime

java - 使用 int 数组的元素初始化字符串

java - 如何在所有 JUnit 测试中集成 Spring Instrument javaagent

playframework-2.2 - 不使用control+D 在后台播放2.2.1 应用程序部署并退出日志

json - PlayFramework 2.2 - Scala - 读取混合数组

scala - Play的路线文件中是否可以导入和有条件?