JavaMail Exception javax.mail.AuthenticationFailedException 534-5.7.9 Application-specific password required(需要特定于应用程序的密码的JavaMail异常javax.mail.AuthenticationFailedException 534-5.7.9)
问题描述
我想使用Java MailAPI发送邮件
我已经进行了一些编码,但抛出异常时不起作用:-
消息发送Failedjavax.mail.AuthenticationFailedException:534-5.7.9需要特定于应用程序的密码。package com.appreciationcard.service;
import java.util.Properties;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import com.appreciationcard.dao.DAOFactory;
import com.appreciationcard.forms.ComposeForm;
public class MailServiceImpl implements MailService {
public boolean mailsent(ComposeForm composeForm) {
String to = composeForm.getTo();
String from = composeForm.getFrom();
String cc = composeForm.getCc();
String bcc = composeForm.getBcc();
String subject = composeForm.getSubject();
String messages = composeForm.getMessage();
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", true);
props.put("mail.smtp.port", "587");
props.put("mail.transport.protocol", "smtp");
props.put("mail.debug", "true");
System.out.println("Properties" + props);
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(
"tosudhansusekhar@gmail.com", "xxxx");
}
});
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress("dynamicmihir@gmail.com"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(
to));
message.setSubject(subject);
message.setText(messages);
Transport.send(message);
} catch (MessagingException mex) {
System.out.println("Message Sending Failed" + mex);
mex.printStackTrace();
}
}
}
我在服务器控制台上遇到异常
邮件发送Failedjavax.mail.AuthenticationFailedException:534-5.7.9需要特定于应用程序的密码。
在534 5.7.9http://support.google.com/accounts/bin/answer.py?answer=185833o5sm11464195pdr.50-gsmtp了解更多信息
有人能帮我解决这个问题吗?
推荐答案
您已经为您的谷歌帐户启用了Two phase authentication,因此应用程序将无法使用实际密码登录到您的谷歌帐户。谷歌希望你为你使用的每个应用程序生成一个特定于应用程序的密码(并给它一个名字),然后使用这个密码从你的应用程序登录到你的谷歌账户。这允许您在启用两步身份验证时不将密码提供给第三方应用程序。
另一种方法是让您的应用程序支持重定向到Google页面,以使用用户名和密码以及Google验证器应用程序生成的代码进行身份验证。
link清楚地说明了要执行的操作。
这篇关于需要特定于应用程序的密码的JavaMail异常javax.mail.AuthenticationFailedException 534-5.7.9的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:需要特定于应用程序的密码的JavaMail异常javax.mail.AuthenticationFailedException 534-5.7.9
基础教程推荐
- 如何强制对超级方法进行多态调用? 2022-01-01
- 如何对 HashSet 进行排序? 2022-01-01
- Spring Boot Freemarker从2.2.0升级失败 2022-01-01
- 由于对所需库 rt.jar 的限制,对类的访问限制? 2022-01-01
- 首次使用 Hadoop,MapReduce Job 不运行 Reduce Phase 2022-01-01
- 在螺旋中写一个字符串 2022-01-01
- 如何使用 Eclipse 检查调试符号状态? 2022-01-01
- Java 中保存最后 N 个元素的大小受限队列 2022-01-01
- 如何在不安装整个 WTP 包的情况下将 Tomcat 8 添加到 Eclipse Kepler 2022-01-01
- 如何使用 Stream 在集合中拆分奇数和偶数以及两者的总和 2022-01-01