JavaMail API身份验证失败异常
对不起我的英语! 当我试图用Android中的JavaMail API从我的gmail帐户发送电子邮件时,我遇到了一个错误。 我得到这个错误:JavaMail API身份验证失败异常,java,android,gmail,jakarta-mail,Java,Android,Gmail,Jakarta Mail,对不起我的英语! 当我试图用Android中的JavaMail API从我的gmail帐户发送电子邮件时,我遇到了一个错误。 我得到这个错误:身份验证失败异常。 我尝试了以下几点: 带有密码的电子邮件地址是正确的(我还使用另一个邮件地址进行了测试)。 谷歌的设置是正确的。 我使用端口465进行了测试,然后得到另一个异常。 我在网上搜索了3天,没有找到任何有用的东西 public class MailSending extends AsyncTask<Void, Void, Void>
身份验证失败异常
。
我尝试了以下几点:
带有密码的电子邮件地址是正确的(我还使用另一个邮件地址进行了测试)。
谷歌的设置是正确的。
我使用端口465进行了测试,然后得到另一个异常。
我在网上搜索了3天,没有找到任何有用的东西
public class MailSending extends AsyncTask<Void, Void, Void> {
private String mail;
private String pass;
private String an;
private String betreff;
private String nachricht;
public MailSending(String mail, String pass, String an, String betreff, String nachricht) {
this.mail = mail;
this.pass = pass;
this.an = an;
this.betreff = betreff;
this.nachricht = nachricht;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
}
@Override
protected Void doInBackground(Void... params) {
final String host = "smtp.gmail.com";
Properties props = new Properties();
props.put("mail.smtp.host", host);
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.port", "587");
Session ses = Session.getInstance(props, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(mail, pass);
}
});
try {
MimeMessage message = new MimeMessage(ses);
InternetAddress addressTo = new InternetAddress(an);
InternetAddress addressFrom = new InternetAddress(mail);
message.setFrom(addressFrom);
message.setRecipient(Message.RecipientType.TO, addressTo);
message.setSubject(betreff);
message.setContent(nachricht, "text/plain");
Transport.send(message);
Log.d("Nachricht:", "erfolgreich gesendet!");
} catch (MessagingException e) {
e.printStackTrace();
}
return null;
}
公共类邮件发送扩展异步任务{
私人字符串邮件;
私人串通;
私有字符串;
私有字符串betreff;
私有字符串nachricht;
公共邮件发送(字符串邮件、字符串传递、字符串an、字符串betreff、字符串nachricht){
this.mail=邮件;
this.pass=通过;
this.an=an;
this.betreff=betreff;
this.nachricht=nachricht;
}
@凌驾
受保护的void onPostExecute(void避免){
super.onPostExecute(避免);
}
@凌驾
受保护的Void doInBackground(Void…参数){
最后一个字符串host=“smtp.gmail.com”;
Properties props=新属性();
props.put(“mail.smtp.host”,host);
props.put(“mail.smtp.auth”,“true”);
props.put(“mail.smtp.starttls.enable”、“true”);
props.put(“mail.smtp.port”,“587”);
Session ses=Session.getInstance(props,new Authenticator(){
@凌驾
受保护的密码身份验证getPasswordAuthentication(){
返回新密码身份验证(邮件、通行证);
}
});
试一试{
MimeMessage message=新MimeMessage(ses);
InternetAddress addressTo=新的InternetAddress(an);
InternetAddress addressFrom=新的InternetAddress(邮件);
message.setFrom(addressFrom);
message.setRecipient(message.RecipientType.TO,addressTo);
message.setSubject(betreff);
message.setContent(nachricht,“文本/普通”);
传输。发送(消息);
Log.d(“Nachricht:”,“erfolgreich gesendet!”);
}捕获(消息异常e){
e、 printStackTrace();
}
返回null;
}
W/System.err:javax.mail.AuthenticationFailedException
W/System.err:at javax.mail.Service.connect(Service.java:319)
W/System.err:at javax.mail.Service.connect(Service.java:169)
W/System.err:at javax.mail.Service.connect(Service.java:118)
W/System.err:at javax.mail.Transport.send0(Transport.java:188)
W/System.err:at javax.mail.Transport.send(Transport.java:118)
W/System.err:at com.example.tuba.login.MailSending.doInBackground(MailSending.java:72)
W/System.err:at com.example.tuba.login.MailSending.doInBackground(MailSending.java:25)
W/System.err:at-android.os.AsyncTask$2.call(AsyncTask.java:288)
W/System.err:at java.util.concurrent.FutureTask.run(FutureTask.java:237)
W/System.err:at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:231)
W/System.err:at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
W/System.err:at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
W/System.err:at java.lang.Thread.run(Thread.java:841)
你找到那辆车了吗
很可能您需要,但如果没有看到,很难确定。这个问题可能是由Gmail帐户保护引起的。只需单击下面的链接并禁用一些安全设置 -- 在Gmail网站上,Vielleicht-wird-dieses的问题是一家名为ausgelöst.Überprüfe的公司和Deaktivier einige Einstellungen的公司
链接:我在Properties类中找到缺少的参数。请添加以下代码并重试
props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
根据文件:
谢谢。尝试连接到主机“smtp.gmail.com”,端口587,isSSL false连接到主机“smtp.gmail.com”,端口587。我在添加session.setDebug(true)后获得此信息。这是什么意思?我停用了安全性。但这并没有解决问题:(您是否使用双因素授权?如果是,我认为这也可能是问题所在,因为您需要先发送代码。