我正在尝试使用Java向Gmail帐户发送邮件,代码如下。我似乎做的每件事都是正确的,但我收到了身份验证失败的消息。谷歌想让我打开“不太安全的应用”功能来实现传输。
有没有一种方法可以让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);
}
我已经做了研究,所以据我所知,代码不是问题所在,只是没有看到一个解决方案,用于不太安全的应用程序消息。
参考文献:
参考文献1参考文献2参考文献3参考文献4
默认情况下,GMail不允许基于密码的身份验证——这就是为什么你必须允许“不太安全的应用”按原样使用你的程序。
相反,可以使用OAuth 2.0来避免直接使用密码。谷歌认为这种方法是安全的,不需要更改任何帐户设置。
我正在尝试使用php邮件从我的gmail帐户发送邮件。 我知道,为了使用php邮件程序发送邮件,我们需要从gmail帐户设置中启用“不太安全的应用程序”。 还有一个选项,在不启用“不太安全的应用程序”的情况下,我们可以通过启用两步验证从不太安全的应用程序发送邮件来使用“应用程序密码”。 但问题是使用“应用程序密码”,我无法发送来自php的邮件,邮件中出现用户名和密码不被接受的错误。 我搜索发现,我
我想使用python 3.4脚本从我的gmail地址发送邮件。我使用以下代码: 如果我在我的gmail帐户中“允许不太安全的应用”,脚本就可以正常工作。然而,如果我禁用“不太安全的应用程序”,它将不起作用(我收到一封来自谷歌的警告电子邮件,其中“登录尝试被阻止”)。我想修改我的代码,以便能够在不启用此功能的情况下发送邮件。 我看了所有关于类似问题的问答,但没有找到任何有用的答案或方法。有人对此有解
我使用Android Studio和这个库;https://github.com/yesidlazaro/GmailBackground . 我正在尝试从我的android应用程序发送电子邮件。但是每当我尝试从Gmail帐户发送电子邮件时,它都不起作用。因为谷歌将我的应用程序固定为“不太安全的应用程序”并阻止它。 我不得不从gmail的安全设置中允许不太安全的应用程序。但我不想这样做。我如何解决这
应用属性: 此代码只能从gmail发送电子邮件(为不太安全的应用程序启用),它可以发送邮件,但我想要的是邮件应该发送任何公司id而不是gmail,尝试在此代码中添加其他电子邮件id,但错误为“用户名和密码不被接受”,有人能建议我需要做哪些更改才能使其适用于任何电子邮件id吗?请建议最佳方法(如有)?
我可以用java向gmail发送邮件,只要“
我研究了以下问题和答案:spring boot-无法连接到SMTP主机:SMTP.gmail.com,端口:25,响应:421 我想做同样的事情--用Gmail服务器从spring boot应用程序发送电子邮件。 我的配置是: 这是从另一个问题复制的,只有用户名和密码已经改变了我的需要。我的scienario唯一不同的是,电子邮件地址的域不是gmail.com。 我的电子邮件客户端类是: 我的例外