SimpleMailMessage message = new SimpleMailMessage();
message.setFrom("xxxxxx@gmail.com");
message.setTo("abc@gmail.coom");
message.setSubject("Hello Test Mail");
message.setText("Hello How r u?");
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
/*mailSender.setHost("smtp.gmail.com");*/
mailSender.setPort(287);
//Set gmail email id
mailSender.setUsername("xyz@gmail.com");
//Set gmail email password
mailSender.setPassword("123");
Properties prop = mailSender.getJavaMailProperties();
prop.put("mail.transport.protocol", "smtp");
prop.put("mail.smtp.host", "smtp.gmail.com");
prop.put("mail.smtp.auth", "true");
prop.put("mail.smtp.starttls.enable", "true");
prop.put("mail.debug", "true");
prop.put("mail.smtp.port", "587");
try{
mailSender.send(message);
}
catch (MailException ex) {
// simply log it and go on...
System.err.println(ex.getMessage());
}
但是给了我以下异常
邮件服务器连接失败;嵌套异常是javax.mail.MessagingException:无法连接到SMTP主机:smtp.gmail.com,port:287;
嵌套异常是:
java.net.ConnectException:连接超时:连接。
消息失败:
javax.mail.MessagingException:无法连接到SMTP
主持人:smtp.gmail.com,端口:287;
nested exception is:
java.net.ConnectException: Connection timed out: connect
答案 0 :(得分:0)
端口587
是使用Google Gmails SMTP服务器(使用TLS)的端口。
您正在287
对象中将端口设置为mailSender
。
删除该setter,它应该使用配置的prop.put("mail.smtp.port", "587");
发送邮件。