Reputation: 11
I have a problem with sending emails. I have good SMTP and port but the message can't be sent because of this error:
Exception in thread "AWT-EventQueue-0" java.lang.RuntimeException: javax.mail.MessagingException: Could not connect to SMTP host: smtp.gmail.com, port: 465, response: -1
Here is the code:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
final String username = "[email protected]";
final String password = "my password";
Properties props = System.getProperties();
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", "465");
Session session;
session = Session.getInstance(props,
new javax.mail.Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
// Create a default MimeMessage object.
MimeMessage message = new MimeMessage(session);
// Set From: header field of the header.
message.setFrom(new InternetAddress("[email protected]"));
// Set To: header field of the header.
message.setRecipient(Message.RecipientType.TO,
new InternetAddress("[email protected]"));
//subject message
message.setSubject("Help Needed");
// Now set the actual message
message.setText("I need help please help me with this program");
message.setContent("<h:body style=background-color :white;font-family:verdana;color:#0066CC;>"
+ "If you are seeing this its OK !!!<br/><br/>"
+ "</body>", "text/html; charset=utf-8");
// Send message
Transport.send(message);
System.out.println("Sent message successfully...");
} catch (MessagingException e) {
throw new RuntimeException(e);
//System.out.println("MessagingException: "+mex.getMessage());
//JOptionPane.showMessageDialog(null, "[!]Cant connect to the database.");
}
}
Please reply if you know i asked in daniweb but there is not fast responses ... Thanks
Upvotes: 0
Views: 2972
Reputation: 16656
I also had this problem, which was solve disabling avast
and made some change at my code, which look like this:
public void simpleEmail2(String to, String subject, String message){
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");
Session session = Session.getInstance(props,
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(username, password);
}
});
try {
Message mmessage = new MimeMessage(session);
mmessage.setFrom(new InternetAddress(username));
mmessage.setRecipients(Message.RecipientType.TO, InternetAddress.parse(to));
mmessage.setSubject("Testing Subject");
mmessage.setText("Dear Mail Crawler,"
+ "\n\n No spam to my email, please!");
Transport.send(mmessage);
System.out.println("Done");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
Upvotes: 1
Reputation: 4509
You may want to do this:
Properties props = new Properties();
props.put("mail.smtp.auth", "true");
Instead of:
Properties props = System.getProperties();
props.put("mail.smtp.auth.", "true");
You have a dot at the end of mail.smtp.auth
and using all the system properties seems like a bad idea.
Here is one example http://www.mkyong.com/java/javamail-api-sending-email-via-gmail-smtp-example/
Upvotes: 1