【问题标题】:STARTTLS issue when using google as the smtp server when using javamail使用 javamail 时使用 google 作为 smtp 服务器时的 STARTTLS 问题
【发布时间】:2015-07-12 21:39:47
【问题描述】:

我使用基于 Java 的 CMS dotCMS,我想使用 google 作为 smtp 服务器。我使用了 dotCMS 文档中描述的配置:http://dotcms.com/docs/latest/mail-configuration

我的配置如下所示:

    <Resource
            name="mail/MailSession"
            auth="Container"
            type="javax.mail.Session"
            mail.debug="true"
            mail.transport.protocol="smtp"
            mail.smtp.host="smtp.gmail.com"
            mail.smtp.auth="true"
            mail.smtp.port="465"
            mail.smtp.starttls.enable="true"
            mail.smtp.user="[my username]"
            mail.password="[my pwd]"
            username="[my username]"
            password="[my pwd]"
            mail.smtp.socketFactory.class="javax.net.ssl.SSLSocketFactory"
     />

当我调用 $mailer.sendEmail 方法时,我得到一个错误返回:

“无法发送消息:530 5.7.0 必须先发出 STARTTLS 命令。c7sm25357283wjb.19 - gsmtp”。

我也尝试了端口587,但这也没有帮助。

知道我做错了什么吗?我正在使用 dotcms 2.5.6。在 debian 7.8 上运行 (wheezy)

【问题讨论】:

    标签: java debian jakarta-mail dotcms


    【解决方案1】:

    你不应该需要socketFactory setting

    您也不应该需要端口设置。

    尝试设置 mail.smtp.ssl.enable=true。如果这不起作用,请尝试设置 mail.transport.protocol=smtps 并将所有 mail.smtp.* 设置更改为 mail.smtps.*。

    Gmail entry in the JavaMail FAQ 可能有用。

    如果这些都不起作用,请发布 JavaMail 调试输出。

    【讨论】:

    • 嘿比尔。谢谢你的提示。我会测试一下。
    【解决方案2】:

    您是否在 google 中设置了 2 因素身份验证?我认为这可能会阻止身份验证的发生。

    【讨论】:

      猜你喜欢
      • 2015-08-02
      • 2011-08-01
      • 2013-06-25
      • 1970-01-01
      • 2013-06-21
      • 2016-01-03
      • 1970-01-01
      • 2021-11-08
      • 1970-01-01
      相关资源
      最近更新 更多