title: an exception is thrown while sending email in java
body: <p>I am a beginner in Java and I want to send an email in Java. For that I am using this code to send the email, but this code is throwing an exception. I have verified my username and password and they are absolutely fine, so please, tell if there is any other way to send email in Java?</p>
  
  <p>This is stack trace of exception:</p>
  
  <pre><code>javax.mail.AuthenticationFailedException: 534-5.7.14 &lt;https://accounts.google.com/ContinueSignIn?sarp=1&amp;scc=1&amp;plt=AKgnsbsNX
  534-5.7.14 No6jJbDc4l7fZ_WLdBD0sNHIIp_nLvplRMm0bYFBnZBF_XOyVvNSdd1FenDZJPwBTFQyRH
  534-5.7.14 lriPK3myMm-dXkW3zK0-6XpO7BzI8hfRcByG1k7YiVzXlddTvs7QhjtgCWNcrzMBuPhoof
  534-5.7.14 GjME2TgYzXJVHz5MV98nRnr_kq-kP7RmgOtX3IQHLwM5E8QGBC9-2THVQr_Ch_U0-1nZsc
  534-5.7.14 yoPuNEw&gt; Please log in via your web browser and then try again.
  534-5.7.14 Learn more at
  534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 wr6sm26888533wjc.24 - gsmtp
  
      at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:892)
      at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:814)
      at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:728)
      at javax.mail.Service.connect(Service.java:364)
      at javax.mail.Service.connect(Service.java:245)
      at SendEmail.sendFromGMail(SendEmail.java:50)
      at SendEmail.main(SendEmail.java:18)
  sent
  </code></pre>
  
  <p>This is my code</p>
  
  <pre><code>import java.util.*;
  import javax.mail.*;
  import javax.mail.internet.*;
  
  public class SendEmail {
  
      private static String USER_NAME = "me";
      private static String PASSWORD = "xyz";
      private static String RECIPIENT = "abc@seecs.edu.pk";
  
      public static void main(String[] args) {
          String from = USER_NAME;
          String pass = PASSWORD;
          String[] to = { RECIPIENT };
          String subject = "Java send mail example";
          String body = "Welcome to JavaMail!";
  
          sendFromGMail(from, pass, to, subject, body);
          System.out.println("sent");
      }
  
      private static void sendFromGMail(String from, String pass, String[] to, String subject, String body) {
          Properties props = System.getProperties();
          String host = "smtp.gmail.com";
          props.put("mail.smtp.starttls.enable", "true");
          props.put("mail.smtp.host", host);
          props.put("mail.smtp.user", from);
          props.put("mail.smtp.password", pass);
          props.put("mail.smtp.port", "587");
          props.put("mail.smtp.auth", "true");
  
          Session session = Session.getDefaultInstance(props);
          MimeMessage message = new MimeMessage(session);
  
          try {
              message.setFrom(new InternetAddress(from));
              InternetAddress[] toAddress = new InternetAddress[to.length];
  
              for( int i = 0; i &lt; to.length; i++ ) {
                  toAddress[i] = new InternetAddress(to[i]);
              }
  
              for( int i = 0; i &lt; toAddress.length; i++) {
                  message.addRecipient(Message.RecipientType.TO, toAddress[i]);
              }
  
              message.setSubject(subject);
              message.setText(body);
              Transport transport = session.getTransport("smtp");
              transport.connect(host, from, pass);
              transport.sendMessage(message, message.getAllRecipients());
              transport.close();
          }
          catch (AddressException ae) {
              ae.printStackTrace();
          }
          catch (MessagingException me) {
              me.printStackTrace();
          }
      }
  }
  </code></pre>