Java 杂谈SpringBoot之旅SpringBoot极简教程 · Spring Boot

SpringBoot-19-之发送邮件

2018-09-10  本文已影响13人  e4e52c116681
零、准备工作
<!--发送邮件的依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
spring:
    mail:
      host: smtp.126.com
      username: toly1994@126.com
      password: 你的密码--注意不是登陆密码,见下图:
      default-encoding: utf-8
点设置,会有让设置pop3密码的地方
关于密码问题.png

一、发送简单邮件

toly1994.com.toly_email.service.MailService
@Service
public class MailService {
    @Value("${spring.mail.username}")
    private String from;
    @Autowired
    private JavaMailSender mJavaMailSender;

    public void sendSimpleMail(String to, String subject, String content) {
        SimpleMailMessage msg = new SimpleMailMessage();
        msg.setTo(to);
        msg.setSubject(subject);
        msg.setText(content);
        msg.setFrom(from);

        mJavaMailSender.send(msg);
    }
}
toly1994.com.toly_email.controller.MailController
@RestController
public class MailController {

    @Autowired
    private MailService mMailService;

    @GetMapping("/send")
    public String send() {
        mMailService.sendSimpleMail("1981462002@qq.com","你好","张风捷特烈");
        return "send";
    }

}
发送邮箱.png

二、发送Html邮件

toly1994.com.toly_email.service.MailService
    public void sendHtmlMail(String to, String subject, String content) throws MessagingException {
        MimeMessage msg = mJavaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg, true);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(content, true);
        helper.setFrom(from);

        mJavaMailSender.send(msg);

    }
toly1994.com.toly_email.controller.MailController
    @GetMapping("/sendHtml")
    public String sendHtml() {
        String html =
                "<html\n" +
                "<body>\n" +
                "<h3> Hello Toly</h3>\n" +
                "</body>\n" +
                "</html>";

        try {
            mMailService.sendHtmlMail("1981462002@qq.com", "你好", html);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send";
    }
发送html邮件.png

三、发送附件

推荐压缩一下成zip再发送。

toly1994.com.toly_email.service.MailService
/**
 *
 * @param to 收信人
 * @param subject 主题
 * @param content 内容
 * @param paths 路径
 * @throws MessagingException
 */
public void sendSubFileMail(String to, String subject, String content, String... paths) throws MessagingException {
    MimeMessage msg = mJavaMailSender.createMimeMessage();
    MimeMessageHelper helper = new MimeMessageHelper(msg, true);
    helper.setTo(to);
    helper.setSubject(subject);
    helper.setText(content, true);
    helper.setFrom(from);
    for (String path : paths) {
        FileSystemResource fsr = new FileSystemResource(new File(path));
        String filename = fsr.getFilename();
        System.out.println(filename);
        helper.addAttachment(filename, fsr);
    }
    mJavaMailSender.send(msg);
}
toly1994.com.toly_email.controller.MailController
@GetMapping("/sendSubFile")
public String sendSubFile() {
    String path = "F:\\SpringBootFiles\\file\\springboot.zip";
    String path2 = "F:\\SpringBootFiles\\file\\MySQL.zip";
    try {
        mMailService.sendSubFileMail("1981462002@qq.com","你好","张风捷特烈",path,path2);
    } catch (MessagingException e) {
        e.printStackTrace();
    }
    return "send";
}
发送附件.png

四、发送图片

toly1994.com.toly_email.service.MailService
    /**
     * 发送带图片的邮件
     * @param to
     * @param subject
     * @param content
     * @param resPath
     * @param resId
     * @throws MessagingException
     */
    public void sendImgMail(String to, String subject, String content,
                            String resPath,String resId) throws MessagingException {
        MimeMessage msg = mJavaMailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(msg, true);
        helper.setTo(to);
        helper.setSubject(subject);
        helper.setText(content, true);
        helper.setFrom(from);

        FileSystemResource fsr = new FileSystemResource(new File(resPath));
        helper.addInline(resId, fsr);

        mJavaMailSender.send(msg);
    }
toly1994.com.toly_email.controller.MailController
    @GetMapping("/sendImgMail")
    public String sendImgMail() {
        String imgPath = "E:\\Photo\\picpic\\Android\\timg.jpg";
        String resId = "001";

        String content =
                "<html><body> 图片邮件:<img width='300' src=\'cid:"+resId+"\'></img></body></html>";
        try {
            mMailService.sendImgMail("1981462002@qq.com","发一张图片给你",content,imgPath,resId);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "send";
    }
发送图片.png
五、发送模板邮件:使用thymeleaf,不熟悉的小伙伴可移驾到这篇:模板引擎--thymeleaf
toly1994.com.toly_email.controller.MailController
    @Autowired
    private TemplateEngine mTemplateEngine;

    @GetMapping("/sendTempMail")
    public String sendTempMail() {
        Context context = new Context();
        context.setVariable("id", "99531e7006e0");
        String emailTemp = mTemplateEngine.process("emailTemp", context);
        try {
            mMailService.sendHtmlMail("1981462002@qq.com","模板邮件",emailTemp);
        } catch (MessagingException e) {
            e.printStackTrace();
        }
        return "OK";
    }

模板:templates/emailTemp.html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8">
    <title>邮件模板</title>
</head>
<body>
您好,感谢您的注册!点击下面的链接完成注册,感谢您的支持 <br>

<a href="#" th:href="@{https://www.jianshu.com/p/{id}(id=${id})}">
https://www.jianshu.com/p/99531e7006e0</a>
</body>
</html>
模板邮件.png

后记、

1.声明:

[1]本文由张风捷特烈原创,转载请注明
[2]欢迎广大编程爱好者共同交流
[3]个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
[4]你的喜欢与支持将是我最大的动力

2.连接传送门:

更多Spring文章,欢迎访问
我的github地址:欢迎star
张风捷特烈个人网站,编程笔记请访问:http://www.toly1994.com

3.联系我

QQ:1981462002
邮箱:1981462002@qq.com
微信:zdl1994328

4.欢迎关注我的微信公众号,最新精彩文章,及时送达:
公众号.jpg
上一篇下一篇

猜你喜欢

热点阅读