gpt4 book ai didi

java - 从 Java 使用 Gmail 发送邮件而无需打开安全性较低的应用程序

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:11:42 24 4
gpt4 key购买 nike

我正在尝试使用 Java 将邮件发送到 Gmail 帐户,代码如下。我似乎做的一切都正确,但我收到身份验证失败。 Google 要我打开“不太安全的应用程序”功能以启用传输。

有没有一种方法可以让 Gmail 对 Java 满意并且不会抛出“打开安全性较低的应用程序”错误?

错误:

javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/signin/continue?sarp=...U
534-5.7.14 FigguJaZwDtp...
534-5.7.14 ...o> 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/... - gsmtp

代码:

String hostSmtpUser = "myemail@gmail.com";
String host = "smtp.gmail.com";
String hostPort = "587";
String hostSmtpPassword = "thepassword";

Properties properties = System.getProperties();
properties.setProperty("mail.smtp.user", hostSmtpUser);
properties.setProperty("mail.smtp.host", host);
properties.setProperty("mail.smtp.starttls.enable", "true");
properties.setProperty("mail.smtp.port", hostPort);
properties.setProperty("mail.smtp.auth", "true");

Session oSession;
if (true == ToolsCommon.isEmpty(hostSmtpUser))
oSession = Session.getInstance(properties);
else
oSession = Session.getInstance(properties, new javax.mail.Authenticator()
{
protected PasswordAuthentication getPasswordAuthentication()
{
return new PasswordAuthentication(hostSmtpUser, hostSmtpPassword);
}
});

// Compose the message
try
{
MimeMessage message = new MimeMessage(oSession);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(Subject);
message.setText(Body);

// Send message
Transport.send(message);
}

catch (MessagingException ex)
{
// Log the error.
ToolsLog.logError(TypeLog.ui, ex);
}

我已经做过研究,所以据我所知代码不是问题,只是没有看到安全性较低的应用消息的解决方法。

引用资料:

Ref 1 Ref 2 Ref 3 Ref 4

最佳答案

默认情况下,GMail 不允许基于密码的身份验证——这就是为什么您必须允许“安全性较低的应用程序”按原样使用您的程序。

相反,您可以 use OAuth 2.0避免直接使用密码。 Google 认为这种方法是安全的,不需要更改任何帐户设置。

关于java - 从 Java 使用 Gmail 发送邮件而无需打开安全性较低的应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43745586/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com