Reputation: 1
I'm getting this below error and timeout exception.
enter code:
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");
props.put("mail.smtp.host","smtp.gmail.com");
props.put("mail.smtp.port", "587");
props.put("mail.debug", "true");
DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 587, isSSL true Exceptioninthread"main"java.lang.RuntimeException:com.sun.mail.util.MailConnectException: Couldn't connect to host,port:smtp.gmail.com, 587; timeout -1.
Upvotes: 0
Views: 2256
Reputation: 29971
Ignore most of the other answers and comments, which are wrong or irrelevant. Many of them include these common JavaMail mistakes. Your original code was fine.
See the JavaMail FAQ for GMail instructions.
Most likely you can't connect because there is some firewall preventing direct access. The JavaMail FAQ has connection debugging tips.
If you can't connect directly and need to connect through a proxy server, the JavaMail FAQ also covers that.
Upvotes: 0
Reputation: 200
private static void sendFromGMail(String from, String pass, String[] to, String subject, String body) {
Properties props = System.getProperties();
String host = "smtp.gmail.com";
//String host="localhost";
//props.put("mail.smtp.ssl.trust", "smtp.gmail.com");
props.put("mail.smtp.starttls.enable", "true");
//props.put("mail.smtp.host", host);
props.put("mail.smtp.ssl.trust", host);
props.put("mail.smtp.user", from);
props.put("mail.smtp.password", pass);
props.put("mail.smtp.port", "587");//587
props.put("mail.smtp.auth", "true");
//System.out.println("1");
Session session = Session.getDefaultInstance(props);
MimeMessage message = new MimeMessage(session);
try {
//System.out.println("2");
message.setFrom(new InternetAddress(from));
InternetAddress[] toAddress = new InternetAddress[to.length];
// To get the array of addresses
for( int i = 0; i < to.length; i++ ) {
toAddress[i] = new InternetAddress(to[i]);
}
for( int i = 0; i < toAddress.length; i++) {
message.addRecipient(Message.RecipientType.TO, toAddress[i]);
}
//System.out.println("3");
message.setSubject(subject);
message.setText(body);
// System.out.println("4");
Transport transport = session.getTransport("smtp");
// System.out.println("5");
transport.connect(host, from, pass);
transport.sendMessage(message, message.getAllRecipients());
transport.close();
//System.out.println("sent successfully...");
}
catch (AddressException ae) {
ae.printStackTrace();
}
catch (MessagingException me) {
me.printStackTrace();
}
}
calling above method and pass these parameters to the method
private static String USER_NAME = "xxxx"; // username "@gmail.com")
private static String PASSWORD = "xxxx"; // password
private static String RECIPIENT = "[email protected]";
public static void main(String[] args) {
String from = USER_NAME;
String pass = PASSWORD;
String[] to = { RECIPIENT }; // list of recipient email addresses
String subject = "Java send mail example";
String body = "Welcome to JavaMail!";
sendFromGMail(from, pass, to, subject, body);
}
And i used following jar files ,
java-mail-1.4.4
javamail-smtp-1.4.2
pop3
mail-6.0.0-sources
Upvotes: 1