android ошибка JavaMailAPI
Подскажите, столкнулся с проблемой, особенность в том, что все работает корректно почта отправляется на устройствах Android 7 и ниже, но как только запускаю на 9, 10 android, мне в логах вылетает ошибка.
Логи с ошибкой:
W/System.err: javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:319)
W/System.err: at javax.mail.Service.connect(Service.java:169)
at javax.mail.Service.connect(Service.java:118)
at javax.mail.Transport.send0(Transport.java:188)
at javax.mail.Transport.send(Transport.java:118)
at xyz.devdiscovery.supportclient.JavaMailAPI.doInBackground(JavaMailAPI.java:104)
at xyz.devdiscovery.supportclient.JavaMailAPI.doInBackground(JavaMailAPI.java:16)
at android.os.AsyncTask$3.call(AsyncTask.java:378)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:289)
at java.util.concurrent.ThreadPoolExecutor.processTask(ThreadPoolExecutor.java:1187)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1152)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
at java.lang.Thread.run(Thread.java:929)
Код активности:
import android.app.ProgressDialog;
import android.content.Context;
import android.os.AsyncTask;
import android.widget.Toast;
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;
public class JavaMailAPI extends AsyncTask<Void,Void,Void> {
private Context mContext;
private Session mSession;
private String mEmail;
private String mSubject;
private String mMessage;
private ProgressDialog mProgressDialog;
public JavaMailAPI(Context mContext, String mEmail, String mSubject, String mMessage) {
this.mContext = mContext;
this.mEmail = mEmail;
this.mSubject = mSubject;
this.mMessage = mMessage;
}
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = ProgressDialog.show(mContext,"Отправка сообщения", "Пожалуйста подождите...",false,false);
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
mProgressDialog.dismiss();
Toast.makeText(mContext,"Сообщение отправлено",Toast.LENGTH_SHORT).show();
}
@Override
protected Void doInBackground(Void... params) {
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", "465");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
mSession = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
//Authenticating the password
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(Utils.EMAIL, Utils.PASSWORD);
}
});
try {
MimeMessage mm = new MimeMessage(mSession);
mm.setFrom(new InternetAddress(Utils.EMAIL));
mm.addRecipient(Message.RecipientType.TO, new InternetAddress(mEmail));
mm.setSubject(mSubject);
mm.setText(mMessage);
Transport.send(mm);
} catch (MessagingException e) {
e.printStackTrace();
}
return null;
}
}
Ответы (2 шт):
Автор решения: Nikita
→ Ссылка
Все, вопрос закрыт, не правильно были настроены конфиги SMTP
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.port", "587");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");