本文介紹了需要特定于應用程序的密碼的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的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,