Click to See Complete Forum and Search --> : javax.mail.AuthenticationFailedException


jimbo692007
03-30-2007, 08:06 AM
hi,
i'm trying to send an email thru smtp.gmail.com but i keep getting "javax.mail.AuthenticationFailedException" error as i send it. i can connect to the host grand but it wont authenticate.

any help would be very much appreciated!

this is the code i'm using:

import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;

import java.io.UnsupportedEncodingException;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

public class SendEmail {
private Log log = LogFactory.getLog("SendEmail.java");
public void sendMail()
{
log.info("IN SEND EMAIL");
Properties myProperties=new Properties();

myProperties.put("mail.smtp.host", "smtp.gmail.com");
myProperties.put("mail.smtp.port", "587");
myProperties.put("mail.smtp.auth", "true");
myProperties.put("mail.debug", "true");
myProperties.put("mail.smtp.starttls.enable", "true");
log.info("MYPORPERTIES DONE");

Session ses = Session.getDefaultInstance(myProperties,null);

Message msg=new MimeMessage(ses);

try {
InternetAddress fromAddress = new InternetAddress("noreply@example.com","example");
InternetAddress toAddress = new InternetAddress("example@gmail.com");

msg.setFrom(fromAddress);
msg.setRecipient(Message.RecipientType.TO,toAddress);

msg.setSubject("TEST");
String body = "Test Mail";
msg.setContent(body, "text/plain");

msg.setSentDate(new Date());
Transport trans = ses.getTransport("smtp");
trans.connect("smtp.gmail.com","example@gmail.com","password");
msg.saveChanges();
trans.send(msg);
trans.close();


}
catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}

}

kalondar
04-07-2007, 02:26 PM
try this:

trans.sendMessage(msg, msg.getAllRecipients());

jimbo692007
04-09-2007, 07:33 AM
try this:

trans.sendMessage(msg, msg.getAllRecipients());

i've tried that already and it still gives the same error

prakashsunil
04-11-2007, 01:46 PM
import java.util.Date;
import java.util.Properties;
import javax.mail.Authenticator;
import javax.mail.PasswordAuthentication;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.security.*;
import java.io.UnsupportedEncodingException;
import javax.swing.JOptionPane;


private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:


Properties myProperties=new Properties();

myProperties.put("mail.smtp.host", "smtp.gmail.com");
myProperties.put("mail.smtp.port", "465");
myProperties.put("mail.smtp.auth", "true");
myProperties.put("mail.smtp.socketFactory.class","javax.net.ssl.SSLSocketFactory");
myProperties.put("mail.smtp.socketFactory.fallback","false");
myProperties.put("mail.smtp.socketFactory.port", "465");
myProperties.put("mail.debug", "true");
myProperties.put("mail.smtp.starttls.enable", "true");


Session ses = Session.getDefaultInstance(myProperties, new Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(jTextField3.getText(), jTextField4.getText());
}});

Security.addProvider(new com.sun.net.ssl.internal.ssl.Provider());
Message msg=new MimeMessage(ses);

try {
InternetAddress fromAddress = new InternetAddress(jTextField3.getText(),jTextField3.getText());
InternetAddress toAddress = new InternetAddress(jTextField1.getText());

msg.setFrom(fromAddress);
msg.setRecipient(Message.RecipientType.TO,toAddress);

msg.setSubject(jTextField2.getText());
String body = jTextArea1.getText();
msg.setContent(body, "text/plain");
msg.setSentDate(new Date());

Transport trans = ses.getTransport("smtp");

trans.connect("smtp.gmail.com",jTextField3.getText(),jTextField4.getText());
msg.saveChanges();
trans.send(msg);
trans.close();
JOptionPane.showConfirmDialog(this,"Message Send");

}
catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}catch (UnsupportedEncodingException e) {
e.printStackTrace();
}

}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new JavaMailing().setVisible(true);
}
});
}

// Variables declaration - do not modify
private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTextArea jTextArea1;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField jTextField3;
private javax.swing.JTextField jTextField4;
// End of variables declaration

}