==================
通过Spring发送邮件
==================
在pom.xml中添加依赖:
org.springframework
spring-context
5.2.4.RELEASE
org.springframework
spring-context-support
5.2.4.RELEASE
org.springframework
spring-test
5.2.4.RELEASE
test
在spring.xml中配置Bean:
邮件服务接口:
// 邮件服务接口
public interface MailService {
// 发送邮件
void sendMail();
}
普通文本邮件服务类:
// 普通文本邮件服务类
@Service
public class PlainTextMailService implements MailService {
@Resource // 注入邮件发送器
private MailSender mailSender;
@Resource // 注入普通文本邮件
private SimpleMailMessage simpleMail;
// 发送邮件
@Override
public void sendMail() {
simpleMail.setSentDate(new Date()); // 时间
try {
// 发送邮件
mailSender.send(simpleMail);
}
catch (MailException exception) {
exception.printStackTrace();
}
}
}
普通文本邮件服务测试类:
// 普通文本邮件服务测试类
public class PlainTextMailServiceTest {
// 测试:发送邮件
@Test
public void testSendMail() {
BeanFactory beanFactory =
new ClassPathXmlApplicationContext("spring.xml");
MailService mailService = beanFactory.getBean(
"plainTextMailService", MailService.class);
mailService.sendMail();
}
}
运行,登录163邮箱查看。
带附件的邮件服务类:
// 带附件的邮件服务类
@Service
public class AttachmentsMailService implements MailService {
@Resource // 注入邮件发送器
private JavaMailSender mailSender;
// 发送邮件
@Override
public void sendMail() {
try {
// 创建邮件对象
MimeMessage message = mailSender.createMimeMessage();
// 填充邮件内容
MimeMessageHelper helper =
new MimeMessageHelper(message, true, "utf-8");
helper.setFrom("johnmin740523@163.com"); // 发件人
helper.setTo("johnmin740523@163.com"); // 收件人
helper.setSentDate(new Date()); // 时间
helper.setSubject("带附件的邮件"); // 主题
helper.setText("这是一封带附件的邮件"); // 正文
File file1 = new File(
"C:\\Users\\Administrator\\Work\\34_研发课时\\肖旭伟_研发统计表.xlsx");
helper.addAttachment(file1.getName(), file1); // 附件
File file2 = new File(
"C:\\Users\\Administrator\\Work\\31_智库\\photo.jpg");
helper.addAttachment(file2.getName(), file2); // 附件
// 发送邮件
mailSender.send(message);
}
catch (MessagingException exception) {
exception.printStackTrace();
}
}
}
带附件的邮件服务测试类:
// 带附件的邮件服务测试类
public class AttachmentsMailServiceTest {
// 测试:发送邮件
@Test
public void testSendMail() {
BeanFactory beanFactory =
new ClassPathXmlApplicationContext("spring.xml");
MailService mailService = beanFactory.getBean(
"attachmentsMailService", MailService.class);
mailService.sendMail();
}
}
运行,登录163邮箱查看。