gpt4 book ai didi

java - 在android中没有用户交互的情况下发送电子邮件获取身份验证错误

转载 作者:行者123 更新时间:2023-11-30 01:57:27 25 4
gpt4 key购买 nike

大家好下面的代码我 worte 在 android 中发送电子邮件但我收到身份验证错误 kaindly 帮助我解决这个问题

    private void sendMail(String email, String subject, String messageBody,File file) {
Session session = createSessionObject();
// new UpdateTask().execute();
try {
Message message = createMessage(email, subject, messageBody, session,file);

new UpdateTask().execute(message);

} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

private Message createMessage(String email, String subject, String messageBody, Session session,File file) throws MessagingException, UnsupportedEncodingException {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("XXXXXXXX@gmail.com", "Sound Check"));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(email, email));
message.setSubject(subject);
message.setText(messageBody);
/**
* Attach a file in mail
*/
Multipart multipart = new MimeMultipart();
BodyPart messageBodyPart = new MimeBodyPart();
DataSource source = new FileDataSource(file);
messageBodyPart.setDataHandler(new DataHandler(source));
messageBodyPart.setFileName(file.getName());

multipart.addBodyPart(messageBodyPart);
message.setContent(multipart);
return message;
}

private Session createSessionObject() {
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class",
"javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.socketFactory.fallback", "false");
props.setProperty("mail.smtp.quitwait", "false");

return Session.getInstance(props, new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("xxxxxxxxxx@gmail.com", "*********");
}
});
}
}
class UpdateTask extends AsyncTask<Message,String,String> {



@Override
protected String doInBackground(Message... params) {
// TODO Auto-generated method stub
Message message = params[0];
try {

Transport.send(message);

} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}

return null;
}

}

出现这样的错误:

08-14 12:09:23.365: W/System.err(30695): javax.mail.AuthenticationFailedException
08-14 12:09:23.365: W/System.err(30695): at javax.mail.Service.connect(Service.java:319)
08-14 12:09:23.365: W/System.err(30695): at javax.mail.Service.connect(Service.java:169)
08-14 12:09:23.365: W/System.err(30695): at javax.mail.Service.connect(Service.java:118)
08-14 12:09:23.365: W/System.err(30695): at javax.mail.Transport.send0(Transport.java:188)
08-14 12:09:23.365: W/System.err(30695): at javax.mail.Transport.send(Transport.java:118)
08-14 12:09:23.365: W/System.err(30695): at com.example.callrecoder.UpdateTask.doInBackground(RecordService.java:384)

同时我收到如下邮件:

sub : 登录尝试被阻止

邮件:

你好名字 有些人只是尝试登录您的 Google 帐户“mailid”表单应用程序,该应用程序不符合现代安全标准。

最佳答案

这些是JavaMail中AuthenticationFailedException最常见的事情

  1. 首先,修复这些 common mistakes.
  2. 开启 Session debugging查看协议(protocol)跟踪是否给出关于问题的更多线索。
  3. 您可能需要 enable access for less secure apps.此错误可能来自谷歌安全......这可以通过启用不太安全的“打开”来解决

完成所有这些步骤后,您仍然面临问题吗?我是来帮你的!!

关于java - 在android中没有用户交互的情况下发送电子邮件获取身份验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32004425/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com