Issue
I am getting error while trying to send email. It worked well earlier, but I haven't been using it for a while. I don't know what causes of this. I've made lot of changes to this class, but I wasn't even touching this functionality, and I'm not sure if it's problem with code, which hasn't changed or, something changed with email functionality. Here's the code:
class PhotoSend extends AsyncTask <Void, Void, Void>{
@Override
protected void onPreExecute() {
}
@Override
protected Void doInBackground(Void... voids) {
final String username = "[email protected]";
final String password = "password";
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.socketFactory.port", "465");
props.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.port", "465");
Session session = Session.getDefaultInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username,password);
}
});
try {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("[email protected]"));
message.setRecipients(Message.RecipientType.TO, InternetAddress.parse("[email protected]"));
message.setSubject("Zamówiono części do zlecenia " + taskID);
message.setText("Do następującego zamówienia " + taskID + " zostały zamówione części w liczbie " + partsCount + "\n\n" + "Opis:\n" + partPicturesDescription);
Transport.send(message);
Log.d(TAG, "onInput: background");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
return null;
}
@Override
protected void onPostExecute(Void aVoid) {
Toast.makeText(getContext(), "Wysłano", Toast.LENGTH_SHORT).show();
Log.d(TAG, "onInput: postExecute");
}
}
and the error:
FATAL EXCEPTION: AsyncTask #6
Process: com.example.damianadamski.Service, PID: 6744
java.lang.RuntimeException: An error occurred while executing doInBackground()
at android.os.AsyncTask$3.done(AsyncTask.java:353)
at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
at java.util.concurrent.FutureTask.run(FutureTask.java:271)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: java.lang.RuntimeException: javax.mail.AuthenticationFailedException
at com.example.damianadamski.service.Fragments.TaskFragment$5$1PhotoSend.doInBackground(TaskFragment.java:541)
at com.example.damianadamski.service.Fragments.TaskFragment$5$1PhotoSend.doInBackground(TaskFragment.java:498)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Caused by: javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:319)
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 com.example.damianadamski.service.Fragments.TaskFragment$5$1PhotoSend.doInBackground(TaskFragment.java:536)
at com.example.damianadamski.service.Fragments.TaskFragment$5$1PhotoSend.doInBackground(TaskFragment.java:498)
at android.os.AsyncTask$2.call(AsyncTask.java:333)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:245)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1162)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:636)
at java.lang.Thread.run(Thread.java:764)
Solution
In my case I have done in my project like this :
public void onClick(View v) {
final GMailSender sender = new GMailSender("[email protected]", "password");
new AsyncTask<Void, Void, Void>() {
@Override public Void doInBackground(Void... arg) {
try {
sender.sendMail("This is Subject",
"This is Body",
"[email protected]",
"[email protected]");
} catch (Exception e) {
Log.e("SendMail", e.getMessage(), e);
}
}
}.execute();
}
Answered By - bugfreerammohan
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.