spring-context-support很早就内置支持邮件发送。
当然, 官方文档明确指出, 需要依赖 JavaMail 这个库。
在这个年代, 我们很少自己搭建 smtp 服务器来发送邮件, 一般都是使用邮件提供商的服务。 例如 QQ邮箱, 企业邮箱, 163, 或者阿里云之类的厂商。
注册一个账号, 然后参考邮件服务商的帮助中心, 以及账户设置页面, 获取smtp服务器端口信息, 以及你注册的账号和密码, 保存到一个比较安全的地方。
pom.xml中的依赖如下:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>4.0.7.RELEASE</version>
</dependency>
<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.4.7</version>
</dependency>
下面是简单的测试代码。 实际使用时请参考本文末尾的相关链接。把代码组织好看一点,好用一点。
package com.cncounter.test.spring;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSenderImpl;
public class TestSpringEmail {
public static void main(String[] args) {
//
sendTextEmail();
}
public static void sendTextEmail() {
//
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
// 参考QQ邮箱帮助中心
mailSender.setHost("smtp.qq.com"); // QQ邮箱smtp发送服务器地址
//mailSender.setPort(465); // QQ这个端口不可用
mailSender.setPort(587);// 端口号
mailSender.setUsername("10001@qq.com"); // 使用你自己的账号
mailSender.setPassword("usbusbcnzztbsbtob"); // 授权码-发短信获取
// 邮件信息
SimpleMailMessage msg = new SimpleMailMessage();
msg.setFrom("10001@qq.com"); // 发件人邮箱
msg.setTo("10086@vip.qq.com"); // 收件人邮箱
msg.setSubject("测试Spring邮件"); // 标题
msg.setText("您的订单号码: 20181120075; 请勿告诉别人!"); // 文本信息
try {
mailSender.send(msg);
System.out.println("邮件发送成功!"); // 没有报错就是好消息 :-)
} catch (MailException ex) {
System.err.println("发送失败:" + ex.getMessage());
}
}
}
如果需要发送附件, 发送图片, 发送HTML等, 请参考下面的相关链接。