问题:
公司有十多个域名,然后有十多个域名邮箱,共用一个邮件服务器,最近把所有邮件通过gmail来转发。与此同时公司所有用原因域名自动发邮件的功能全部失效。首选想到的是 host 也就是smtp 协议需要修改,我把它修改为 smtp.gmail.com 后仍然发送失败,报如下错误:
javax.mail.MessagingException: 530 5.7.0 Must issue a STARTTLS command first. u12sm73042tia.38
解决:
从错误类型来看,应该是少设置了参数。从网上查找资料分析,原因是因为 :
发送邮件默认是25端口,但是gmail邮件服务商用的不是25端口,而是465或587端口
所以 Properties加上如下设置就可以发邮件了:
prop.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
prop.setProperty("mail.smtp.socketFactory.fallback", "false");
prop.setProperty("mail.smtp.port", "465");
prop.setProperty("mail.smtp.socketFactory.port", "465");