寫在前面的話:
由於需要部署服務到阿里雲ESC服務器,里面涉及到一個發送郵件的功能,在本地我用的是一般發送方式(163郵箱),端口號25
但是,阿里把這個端口關閉了,所以需要換其他端口,阿里建議用ssl方式發送,並使用相應的端口,我就用465端口號,但是代碼還是要調整的,需要發送ssl方式
原有的參數配置:
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(mailConfig.getSmtp());
Properties javaMailProperties = new Properties();
javaMailProperties.put("mail.smtp.auth", "true");
if(mailConfig.getTimeout() > 0)
{
javaMailProperties.put("mail.smtp.connectiontimeout", mailConfig.getTimeout() * 1000);
javaMailProperties.put("mail.smtp.timeout", mailConfig.getTimeout() * 1000);
}else
{
javaMailProperties.put("mail.smtp.connectiontimeout", MailConfig.TIMEOUT);
javaMailProperties.put("mail.smtp.timeout", MailConfig.TIMEOUT);
}
javaMailSender.setJavaMailProperties(javaMailProperties);
javaMailSender.setDefaultEncoding("GBK");
javaMailSender.setPort(mailConfig.getServerPort());
javaMailSender.setUsername(mailConfig.getUserName());
javaMailSender.setPassword(mailConfig.getPassword());
修改后的參數配置:
JavaMailSenderImpl javaMailSender = new JavaMailSenderImpl();
javaMailSender.setHost(mailConfig.getSmtp());
Properties javaMailProperties = new Properties();
javaMailProperties.put("mail.smtp.auth", "true");
if(mailConfig.getTimeout() > 0)
{
javaMailProperties.put("mail.smtp.connectiontimeout", mailConfig.getTimeout() * 1000);
javaMailProperties.put("mail.smtp.timeout", mailConfig.getTimeout() * 1000);
}else
{
javaMailProperties.put("mail.smtp.connectiontimeout", MailConfig.TIMEOUT);
javaMailProperties.put("mail.smtp.timeout", MailConfig.TIMEOUT);
}
//加認證機制
javaMailProperties.put("mail.smtp.starttls.enable", true);
javaMailProperties.put("mail.transport.protocol", "smtps"); // 啟用smtps方式
javaMailSender.setJavaMailProperties(javaMailProperties);
javaMailSender.setDefaultEncoding("GBK");
javaMailSender.setPort(mailConfig.getServerPort());
javaMailSender.setUsername(mailConfig.getUserName());
javaMailSender.setPassword(mailConfig.getPassword());
javaMailSender.setProtocol("smtps");// 發送協議smtps