title: Client was not authenticated to send anonymous mail during MAIL FROM
body: <p>I am trying to send an email in a java application calling this method:</p>
  
  <pre><code>public static void sendEmail() {
  
      // Create object of Property file
      Properties props = new Properties();
  
      // this will set host of server- you can change based on your requirement 
      props.put("mail.smtp.host", "smtp.office365.com");
  
      // set the port of socket factory 
      //props.put("mail.smtp.socketFactory.port", "587");
  
      // set socket factory
      //props.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
  
      // set the authentication to true
      props.put("mail.smtp.auth", "true");
  
      // set the port of SMTP server
      props.put("mail.smtp.port", "587");
  
      // This will handle the complete authentication
      Session session = Session.getDefaultInstance(props,
  
              new javax.mail.Authenticator() {
  
                  protected PasswordAuthentication getPasswordAuthentication() {
  
                  return new PasswordAuthentication("xx@mail.com", "xx");
  
  
                  }
  
              });
  
      try {
  
          // Create object of MimeMessage class
          Message message = new MimeMessage(session);
  
          // Set the from address
          message.setFrom(new InternetAddress("xx@mail.com"));
  
          // Set the recipient address
          message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("yy@mail.com"));
  
                      // Add the subject link
          message.setSubject("Testing Subject");
  
          // Create object to add multimedia type content
          BodyPart messageBodyPart1 = new MimeBodyPart();
  
          // Set the body of email
          messageBodyPart1.setText("This is message body");
  
          // Create object of MimeMultipart class
          Multipart multipart = new MimeMultipart();
  
          // add body part 2
          multipart.addBodyPart(messageBodyPart1);
  
          // set the content
          message.setContent(multipart);
  
          // finally send the email
          Transport.send(message);
  
          System.out.println("=====Email Sent=====");
  
      } catch (MessagingException e) {
  
          throw new RuntimeException(e);
  
      }
  
  }
  </code></pre>
  
  <p>but for some reason when the debug hits Transport.send(), I got this exception:</p>
  
  <pre><code>com.sun.mail.smtp.SMTPSendFailedException: 530 5.7.57 SMTP; Client was not authenticated to send anonymous mail during MAIL FROM [DB6PR0802CA0037.eurprd08.prod.outlook.com]
  </code></pre>
  
  <p>why is this happening even though I used the Authenticator()?</p>