【问题标题】:Error authenticating using SMTP with gmail using JAVA MAIL使用 JAVA MAIL 使用 SMTP 和 gmail 进行身份验证时出错
【发布时间】:2017-05-29 19:50:25
【问题描述】:

我正在构建一个需要自动发送电子邮件的 JAVA 应用程序。我想在用户出价过高、中标或拍卖接近尾声时自动向用户发送电子邮件。

我曾尝试使用 JAVA MAIL 以编程方式通过 SMTP 从 gmail 电子邮件帐户向用户发送电子邮件。

我创建了一个具有以下属性的会话:

mailProps.put("mail.transport.protocol", "smtp");
mailProps.put("mail.host", "smtp.gmail.com");
mailProps.put("mail.from", "example@gmail.com");
mailProps.put("mail.smtp.starttls.enable", "true");
mailProps.put("mail.smtp.port", "587");
mailProps.put("mail.smtp.auth", "true");

但是,当它尝试与 gmail smtp 服务器连接时,会出现以下错误:

2017-01-14T15:10:00.437+0000|Info: DEBUG SMTP: Attempt to authenticate using mechanisms: LOGIN PLAIN DIGEST-MD5 NTLM
2017-01-14T15:10:00.437+0000|Info: DEBUG SMTP: AUTH LOGIN command trace suppressed
2017-01-14T15:10:00.688+0000|Info: DEBUG SMTP: AUTH LOGIN failed
534-5.7.14 <https://accounts.google.com/signin/continue?sarp=1&scc=1&plt=AKgnsbuw
534-5.7.14 EfaT2fDb2sjOrLupYNLlyOHb9lE38eDaz5aUiuBq92gl3
534-5.7.14 kZTEQkua_PZIUyxIdz49T58PTKSKOyzdqCX0gkcSFz6uz-lh
534-5.7.14 33n4s01a1H4jmxgJcm9tU-re9mmzW_YRno-F6DkwnVJKJVSVwYnMzxmwBE
534-5.7.14 EQrJwrflGIGvyv_ShBDkHLFwGrzf0> 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 c202sm13382879wmd.10 - gsmtp

错误代码中的链接提到我可能需要“允许安全性较低的应用:如果您不使用两步验证,您可能需要允许安全性较低的应用访问您的帐户。”它还指出,这会降低我的帐户安全性,我不想这样做。

我是否必须使用两步身份验证,如果需要,有人可以将我指向描述它的资源吗?

此外,使用 gmail 通过 SMTP 发送电子邮件也存在限制。我想知道这种方法是否是用于从 JAVA 应用程序发送通知电子邮件的正确方法类型?有没有办法成为受信任的电子邮件发件人,并增加您的限制?还是我完全走错了路

提前谢谢...

【问题讨论】:

    标签: java email smtp smtp-auth


    【解决方案1】:

    此链接https://support.google.com/accounts/answer/185833 可能会回答您的问题。查看“如何生成和应用密码”部分。之后,您将选择一个“应用程序”,例如 gmail、驱动器等,然后为此生成“应用程序密码”,然后您将在 Java 应用程序中使用它来发送和接收 gmail。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-10
      • 1970-01-01
      • 2015-12-31
      • 2013-02-06
      • 2012-09-26
      • 2017-06-22
      • 2016-02-29
      • 2012-12-23
      相关资源
      最近更新 更多