我们基于java的MimeMessage实现邮件推送
引入依赖
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
正常的javaMailSender对象的属性需要在yml中配置:
spring:
mail:
host: smtp.163.com(这里根据实际情况填写)
usename: xxxxxx@163.com
password: 授权码
default-encoding: utf-8
由于我们项目发送邮件的账号不止一个,所以并没有在yml中配置属性
public class EmailService {
@Autowired
private JavaMailSender javaMailSender;
//这里就是将host,port,username,password等信息进行设置的代码(如果你的项目不需要设置多个账号,那么用yml写死账号信息即可)
JavaMailSenderImpl mailSender = (JavaMailSenderImpl)javaMailSender;
mailSender.setHost(serverAddress);
mailSender.setPort(25);
mailSender.setUsername(emailAddress);
mailSender.setPassword(emailCode);
mailSender.setDefaultEncoding("UTF-8");
//设置邮件信息
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
//设置发件人邮箱号
mimeMessageHelper.setFrom(emailAddress);
//设置邮件人邮箱号
mimeMessageHelper.setTo(to);
//设置标题
mimeMessageHelper.setSubject(subject);
//这里我的邮件是一个html模版,true代表content内容为html
mimeMessageHelper.setText(content,true);
//这是抄送人
mimeMessageHelper.setCc(cc);
//这里的filepath是附件的路径
FileSystemResource fileSystemResource = new FileSystemResource(new File(filePath));
String filename = fileSystemResource.getFilename();
//这里是为邮件设置附件,两个参数分别是filename(文件名),fileSystemResource对象(文件路径)
mimeMessageHelper.addAttachment(filename,fileSystemResource);
javaMailSender.send(mimeMessage);
}