gmail javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command fi

今天写代码监控商用的服务器的数据库连接池状态,想实现当连接池被用光后,就发邮件通知。

实验后,发现126的smtp服务器貌似有点限制,不能频繁发邮件。

然后改用了gmail。

然后同样的代码却报错:

 

Java代码 复制代码
javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. 36sm443504yxh.67
failure! 

	at com.sun.mail.smtp.SMTPTransport.issueCommand(SMTPTransport.java:1020)
	at com.sun.mail.smtp.SMTPTransport.mailFrom(SMTPTransport.java:716)
	at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:388)
	at SendMail.executeMailSend(SendMail.java:59)
	at SendMail.run(SendMail.java:25)
	at SendMail.main(SendMail.java:70)
 

 

解决方法:

在配置smtp服务器的代码中,加上一下代码:

Java代码 复制代码

  

props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory"); 
			props.setProperty("mail.smtp.socketFactory.fallback", "false"); 
			props.setProperty("mail.smtp.port", "465"); 
			props.setProperty("mail.smtp.socketFactory.port", "465"); 


问题解决。
 

你可能感兴趣的:(java,.net,sun,Gmail)