首先引入Maven包:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-mail</artifactId>
</dependency>
这里以QQ邮箱为例,要开通smtp的服务,这里还有要注意的。
尽量不要用刚刚注册的邮箱,不然会被供应商退回的。
application.properties如下:
spring.mail.host=smtp.qq.com
spring.mail.username=xxxxxxxxx@qq.com
spring.mail.password=xxxxxxxxx
spring.mail.default-encoding=utf-8
发送代码如下:
@Service
public class MailService {
@Autowired
JavaMailSender javaMailSender;
public void sendTest(){
//建立邮件消息
SimpleMailMessage mainMessage = new SimpleMailMessage();
//发送者
mainMessage.setFrom("和spring.mail.username一样的");
//接收者
mainMessage.setTo("目标邮箱");
//发送的标题
mainMessage.setSubject("这是您需要的文件");
//发送的内容
mainMessage.setText("请看附件");
javaMailSender.send(mainMessage);
}
public void sendFileTest(ResourcesInfoVo resourcesInfo) throws MessagingException, IOException {
MimeMessage mimeMessage = javaMailSender.createMimeMessage();
MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true);
helper.setSubject("这是您需要的文件");
//发送者
helper.setFrom("和spring.mail.username一样的");
//接收者
helper.setTo("目标邮箱");
helper.setSentDate(new Date());
helper.setText("需要的文件在附件中,欢迎下次继续使用本系统。");
InputStream inputStream = new ByteArrayInputStream(resourcesInfo.getContent());
helper.addAttachment(resourcesInfo.getFileName(), new ByteArrayResource(IOUtils.toByteArray(inputStream)));
javaMailSender.send(mimeMessage);
}
}
这里要注意的,不同供应商的邮箱,发送附件和邮件数是有限的。这个要注意!