在很多业务中都存在着发送邮件的功能,邮件在国内不是经常使用但是在国外非常常用,废话少说,上代码!
首先先得开通smtp功能
进入qq邮箱>设置>账户>开启
获取授权码(待会要用)
pom文件添加依赖
<dependency><groupId>org.springframework.bootgroupId><artifactId>spring-boot-starter-mailartifactId> dependency>
properties配置
#配置邮件消息spring.mail.host=#发送邮件者信箱spring.mail.username=发件人邮箱例如:12456789@#这里不是邮箱的登录密码,而是开启PO3/SMTP服务时邮箱的授权码spring.mail.password=获取到的授权码值spring.mail.default-encoding=UTF-8spring.mail.port=587#发邮件的端口spring.mail.properties.mail.smtp.socketFactory.class=.ssl.SSLSocketFactoryspring.mail.properties.mail.debug=true
controller层
@Autowiredprivate JavaMailSender javaMailSender;//普通邮件发送private void sendMail(String QQ邮箱,String title,String text){SimpleMailMessage message = new SimpleMailMessage(); message.setFrom("1007085520@"); message.setTo(QQ邮箱); message.setSubject(title); message.setText(text); javaMailSender.send(message);}html邮件 MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage); messageHelper.setSubject(title); messageHelper.setFrom("1007085520@"); messageHelper.setTo(QQ); messageHelper.setText(text, true); javaMailSender.send(messageHelper.getMimeMessage()); 附件邮件 MimeMessage message = javaMailSender.createMimeMessage(); try {MimeMessageHelper helper = new MimeMessageHelper(message, true); helper.setFrom("1007085520@"); helper.setTo("1007085520@"); helper.setSubject("辩题"); helper.setText("内容"); helper.addAttachment("南方原油.xls", new File("./策划.xls")); } catch (Exception e) {e.printStackTrace(); } javaMailSender.send(message);
完结撒花如果不使用上面的端口 默认会使用25端口,本地测试不会出现问题,但是部署到阿里云服务器就会出问题(阿里云默认禁止25端口)