Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaMail API身份验证失败异常_Java_Android_Gmail_Jakarta Mail - Fatal编程技术网

JavaMail API身份验证失败异常

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>

对不起我的英语! 当我试图用Android中的JavaMail API从我的gmail帐户发送电子邮件时,我遇到了一个错误。 我得到这个错误:
身份验证失败异常
。 我尝试了以下几点: 带有密码的电子邮件地址是正确的(我还使用另一个邮件地址进行了测试)。 谷歌的设置是正确的。 我使用端口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)后获得此信息。这是什么意思?我停用了安全性。但这并没有解决问题:(您是否使用双因素授权?如果是,我认为这也可能是问题所在,因为您需要先发送代码。