I want to send mail to my java program via google smtp server, but it seems to get stuck when sending mail. Can someone tell me why pls?
this is the mail sending function:
public void sendMail(){
String from = "xxx@gmail.com";
String to = "xxx@hotmail.com";
String subject = "Test";
String message = "A test message";
SendMail sendMail = new SendMail(from, to, subject, message);
sendMail.send();
}
And this is class
public class SendMail {
private String from;
private String to;
private String subject;
private String text;
public SendMail(String from, String to, String subject, String text){
this.from = from;
this.to = to;
this.subject = subject;
this.text = text;
}
public void send(){
Properties props = new Properties();
props.put("mail.smtp.host", "smtp.gmail.com");
props.put("mail.smtp.auth", "true");
props.setProperty( "mail.smtp.port", "587" );
props.put("mail.smtp.starttls.enable", "true");
Session session = Session.getDefaultInstance(props);
new javax.mail.Authenticator() {
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(from, "MyPasswordGoesHere");
}
};
try {
MimeMessage message = new MimeMessage(session);
message.setFrom(new InternetAddress(from));
message.addRecipient(Message.RecipientType.TO, new InternetAddress(to));
message.setSubject(subject);
message.setText(text);
Transport.send(message);
System.out.println("message sent successfully");
} catch (MessagingException e) {
throw new RuntimeException(e);
}
}
}
Thanks in advance!
source
share