title: Sending e-mails from java
body: <p>I have a problem with sending e-mail from Java, when I'm using Java mail Authentification. I can't figure out way I'm getting the following exception:</p>
  
  <pre><code>javax.mail.AuthenticationFailedException: 530 Access denied
  </code></pre>
  
  <p>I will display below the entire code. Can you please tell me what I'm doing wrong?<br>
  Please note that before adding authentication everything worked fine.
  Also, do you know if it is possible to send emails between 2 different domain(eg. gmail to yahoo)?</p>
  
  <pre><code>// LoginDemo.java
  
  import javax.swing.*;
  
  import java.awt.*;
  import java.awt.event.*;
  
  import java.util.Properties;
  
  //import javax.mail.Authenticator;
  import javax.mail.Message;
  import javax.mail.MessagingException;
  //import javax.mail.PasswordAuthentication;
  import javax.mail.PasswordAuthentication;
  
  import javax.mail.Session;
  import javax.mail.Transport;
  import javax.mail.internet.InternetAddress;
  import javax.mail.internet.MimeMessage;
  
  class Popup extends JFrame 
  {
      private static final long serialVersionUID = 1L;
      JLabel label;
      JPanel panel;
      Popup(){
      label = new JLabel();
      label.setText("E-mail sent...");
          panel=new JPanel();
          panel.setLayout(null);
          label.setBounds(10,5, 100, 23);
          panel.add(label);
  
           add(panel);
  
           setTitle("Sending E-mails");
      }
  }
  
  class Authenticator extends javax.mail.Authenticator {
      public PasswordAuthentication authentication;
  
      public Authenticator() {
          String username = "andreeav@domain.com";
          String password = "password";
          authentication = new PasswordAuthentication(username, password);
      }
  
      public PasswordAuthentication getPasswordAuthentication() {
          return authentication;
      }
  }
  </code></pre>
  
  <hr>
  
  <pre><code>class Login extends 
  JFrame implements ActionListener
  {
  
      private static final long serialVersionUID = 1L;
  
      JButton Send;
          JPanel panel;
          JLabel label1,label2, label3;
          final JTextField  text1,text2;
          JTextArea text3;
          String body_mail = " Dear Lavinia  \r\n\n 55544 - Andreea Deal (PERSONAL CARE PRODUCTS DIVISION) (CA)   (55544)(V.SOAP)AP needs your \n approval with the following details: \r\n Approval Cycle#: 1 \r\n Channel   Name: Andreea Channel \r\n Advertiser:Andreea Advertiser \r\n Agency:   ANDREEA AGENCY(P) LTD (CA) \r\n Period: 04/10/2012 - 04/30/2012 \r\n Amount: 436,000.00  \r\n   Expected Annual Spend: 0.00  \r\n Last Year Total Budget: 0.00 INR \r\n Last Year Discount: Minimum = 0.00, Maximum = 0.00 \r\n Comments: To approve or reject the proposal, please do not reply to sender e-mail   address. \n Please reply with your comments to the following e-mail address accordingly:  ";
  
  
      Login()
      {
  
          label3 = new JLabel();
          label3.setText("Created by andreeav on April 20th 2012");
  
          label1 = new JLabel();
          label1.setText("To:");
          text1 = new JTextField(50);
  
          label2 = new JLabel();
          label2.setText("Subject:");
          text2 = new JTextField(50);
  
          text3 = new JTextArea(100, 100);
  
              text3.setText(body_mail);
          Send=new JButton("Send");
  
              panel=new JPanel();
              panel.setLayout(null);
  
              label1.setBounds(10,5, 50, 23);
          panel.add(label1);
              text1.setBounds(60, 5, 550, 23);
          panel.add(text1);
          label2.setBounds(10,33,50,23);
          panel.add(label2);
          text2.setBounds(60, 33, 550, 23);
          panel.add(text2);
              text3.setBounds(10, 61, 600, 430);
          text3.setLineWrap(true);
  
          label3.setBounds(10, 513, 250, 23);
              panel.add(label3);
          panel.add(text3);
  
          Send.setBounds(520, 513, 90, 23);
  
          panel.add(Send);
          add(panel);
              Send.addActionListener(this);
              setTitle("Sending E-mails");
      }
  
      public static boolean isValidEmailAddress(String email)
       {
       try {
       new javax.mail.internet.InternetAddress(email, true);
       } catch (javax.mail.internet.AddressException e) {
       return false;
       }
       return true;
       }
  
  
  
      public static  Session getSession() {
          Authenticator authenticator = new Authenticator();
  
          Properties properties = new Properties();
          properties.setProperty("mail.smtp.submitter", authenticator.getPasswordAuthentication().getUserName());
          properties.setProperty("mail.smtp.auth", "true");
  
          properties.setProperty("mail.smtp.host", "smtp.mail.yahoo.com");
          properties.setProperty("mail.smtp.port", "25");
  
          return Session.getInstance(properties, authenticator);
      }
  
  
      public static void SMTPSending(String from, String to, String subject, String content, String host) throws MessagingException
      {
  
  
            // Get system properties
             Properties properties = System.getProperties();  
  
            // Setup mail server
             properties.setProperty("mail.smtp.host", host);  
  
            // Get the default Session object.
  
            // Create a default MimeMessage object.
             MimeMessage message = new MimeMessage(getSession());  
  
            // Set the RFC 822 "From" header field using the
             // value of the InternetAddress.getLocalAddress method.
             message.setFrom(new InternetAddress(from)); 
  
            // Add the given addresses to the specified recipient type.
             message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
  
            // Set the "Subject" header field.
             message.setSubject(subject);  
  
            // Sets the given String as this part's content,
             // with a MIME type of "text/plain".
             message.setText(content,"UTF-8", "html");
  
  
            // Send message
             Transport.send(message);
  
  
      }
  
  
  
     public void actionPerformed(ActionEvent ae)
      {
  
          String value1=text1.getText();
          String value2=text2.getText();
          String value3=text3.getText();
          System.out.println(value3);
  
  
      String value4 = "To approve this " + "proposal" + ": " +
          "&lt;a href=\"mailto:"+
          "dealapproval@domain.com" + "?subject=" +
          "Proposal" + " " +
          "55544 -Andreea Deal(55544)(V.A)AP lavi test"+
          " for Approval number " + "10700" + "." +
          " For information only." + "\"&gt;" + 
          "dealapproval@domain.com" + "&lt;/a&gt;&lt;br&gt;";
  
  
  
          //String value4 = "www.google.com";
          value3 = value3+":  "+value4;
          boolean valid = isValidEmailAddress(value1);
  
          if (valid == true) {
               try {
  
              SMTPSending("andreeav@domain.com", value1, value2, value3,"mydomain");
              } catch (MessagingException e) {
  
                  e.printStackTrace();
              }
  
               Popup page =new Popup();
              //set frame size
              page.setSize(200, 100);
  
               //center frame on screen
               page.setLocationRelativeTo(null);
  
              page.setVisible(true);
  
  
         // page.dispose();
      }
          else{
  
              JOptionPane.showMessageDialog(this,"Invalid e-mail address!","Error",JOptionPane.ERROR_MESSAGE);
      }
  }
  }
  </code></pre>
  
  <hr>
  
  <pre><code> class LoginDemo
  {
      public static void main(String arg[])
      {
          try
          {
  
         Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
         int height = screenSize.height;
         int width = screenSize.width;
  
          Login frame=new Login();
          //set frame size
          frame.setSize(width/2, height/2+200);
  
           //center frame on screen
           frame.setLocationRelativeTo(null);
  
          frame.setVisible(true);
          frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  
          }
      catch(Exception e)
          {JOptionPane.showMessageDialog(null, e.getMessage());}
      }
  }
  </code></pre>
  
  <hr>
  
  <pre><code>//NextPage.java
  
  import javax.swing.*;
  
  class NextPage extends JFrame
  {
  
      private static final long serialVersionUID = 1L;
  
      NextPage()
      {
         setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
         setTitle("Sending E-mails");
         setSize(400, 400);
  
      }
   }
  </code></pre>