Quantcast
Channel: Active questions tagged email - Stack Overflow
Viewing all articles
Browse latest Browse all 29767

Why I'm getting javax.mail.AuthenticationFailedException?

$
0
0

Can someone tells me why the app throws this?

W/System.err: 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)
W/System.err:     at javax.mail.Transport.send(Transport.java:118)
        at com.example.**.Utils.SendMail.doInBackground(SendMail.java:71)
        at com.example.**.Utils.SendMail.doInBackground(SendMail.java:19)
        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.runWorker(ThreadPoolExecutor.java:1167)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
        at java.lang.Thread.run(Thread.java:919)


I'm trying to send a mail with javamail api.

I want to mention that I checked on the mail account, less secure apps.

This is the SendMail class

package com.example.****.Utils;


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 SendMail extends AsyncTask<Void, Void, Void> {

  private Context context;
  private Session session;


  private String email;
  private String subject;
  private String message;

  public SendMail(Context context, String email, String subject, String message)
  {
      this.context = context;
      this.email = email;
      this.subject = subject;
      this.message = message;
  }

  @Override
    protected void onPreExecute() {
      super.onPreExecute();
      Toast.makeText(context, "Sending mail...", Toast.LENGTH_SHORT).show();
  }

  @Override
    protected void onPostExecute(Void aVoid)
  {
      super.onPostExecute(aVoid);
      Toast.makeText(context, "Message Sent", 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.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.getDefaultInstance(props, new javax.mail.Authenticator() {
          protected  PasswordAuthentication getPasswordAuthentication() {
              return new PasswordAuthentication(Config.EMAIL, Config.PASSWORD);
          }
      });
      try {
          MimeMessage mm = new MimeMessage(session);
          mm.setFrom(new InternetAddress(Config.EMAIL));
          mm.addRecipient(Message.RecipientType.TO, new InternetAddress(email));
          mm.setSubject(subject);
          mm.setText(message);

          Transport.send(mm);
      }
      catch (MessagingException e) {
          e.printStackTrace();
      }
      return null;
  }
}

And here I'm using it

  String email = "******";
        String subject = "Activation";
        String message = "This User requires activation: " + "<a href='http://localhost:80/approve/" +mAuth.getCurrentUser().getEmail() +"> Click here </a>";

        SendMail sm = new SendMail(this, email, subject,message);
        sm.execute();

I provided the right password, I checked that on my Google Account, it should be working can you please help me?

Thank you in advance!


Viewing all articles
Browse latest Browse all 29767

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>