//方法描述
@RequestMapping("/sendEmail")
@ResponseBody
public void sendEmail(HttpServletResponse response, String email, String vedioPath) throws MessagingException {
//创建连接对象 连接到邮件服务器
Properties properties = new Properties();
//设置发送邮件的基本参数
//发送邮件服务器(注意,此处根据你的服务器来决定,如果使用的是QQ服务器,请填写smtp.qq.com)
properties.put("mail.smtp.host", "smtp.qq.com");
//发送端口(根据实际情况填写,一般均为25)
// properties.put("mail.smtp.port", "25");
properties.put("mail.smtp.auth", "true");
properties.put("mail.smtp.socketFactory.port", "465");
properties.put("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
properties.setProperty("mail.smtp.socketFactory.fallback", "false");
properties.setProperty("mail.smtp.socketFactory.port", "465");
//设置发送邮件的账号和密码
javax.mail.Session session = Session.getInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
//两个参数分别是发送邮件的账户和密码(注意,如果配置后不生效,请检测是否开启了 POP3/SMTP 服务,QQ邮箱对应设置位置在: [设置-账户-POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务])
return new PasswordAuthentication("xxxxxxxxxxxxx@qq.com", "xxxxxxxxxx");
// return new PasswordAuthentication("xxxxxxxxxxx@qq.com", "xxxxxxxxx");
}
});
//创建邮件对象
Message message = new MimeMessage(session);
//设置发件人
// try {
message.setFrom(new InternetAddress("xxxxxxxxxx@qq.com"));
//设置收件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress(email));
//设置主题
message.setSubject("上网了平台-AE视频订单");
//设置邮件正文 第二个参数是邮件发送的类型
message.setContent("<html lang='zh-CN'><head ><meta charset='utf-8'>"
+ "</head><body>尊敬的客户,您的视频已制作完成,请您下载查阅"
+ "<a href='xxxxxxxxxxxxxxxx?vedioPath=" + vedioPath + "'>【您的定制视频】</a></body></html>",
"text/html;charset=utf-8");
Transport.send(message);
/*} catch (MessagingException e) {
System.out.println(e.getMessage());
writeJsonData(response,
new CommonModel(Constants.StatusCode.sendFail.VALUE, Constants.StatusCode.sendFail.MSG));
}*/
writeJsonData(response,
new CommonModel(Constants.StatusCode.Success.VALUE, Constants.StatusCode.Success.MSG));
}
阿里云QQ邮箱发送端口为 25 默认端口是被禁止的。所以改为465端口采用SSL协议传输邮件