前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >SpringBoot-19-之发送邮件

SpringBoot-19-之发送邮件

作者头像
张风捷特烈
发布2018-09-29 11:24:23
4160
发布2018-09-29 11:24:23
举报
文章被收录于专栏:Android知识点总结
零、准备工作
代码语言:javascript
复制
<!--发送邮件的依赖-->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-mail</artifactId>
</dependency>
代码语言:javascript
复制
spring:
    mail:
      host: smtp.126.com
      username: toly1994@126.com
      password: 你的密码--注意不是登陆密码,见下图:
      default-encoding: utf-8
点设置,会有让设置pop3密码的地方

关于密码问题.png


一、发送简单邮件
toly1994.com.toly_email.service.MailService
代码语言:javascript
复制
@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
代码语言:javascript
复制
@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
代码语言:javascript
复制
    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
代码语言:javascript
复制
    @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
代码语言:javascript
复制
/**
 *
 * @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
代码语言:javascript
复制
@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
代码语言:javascript
复制
    /**
     * 发送带图片的邮件
     * @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
代码语言:javascript
复制
    @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
代码语言:javascript
复制
    @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
代码语言:javascript
复制
<!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你的喜欢与支持将是我最大的动力

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018.09.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 零、准备工作
  • 点设置,会有让设置pop3密码的地方
  • 一、发送简单邮件
    • toly1994.com.toly_email.service.MailService
      • toly1994.com.toly_email.controller.MailController
      • 二、发送Html邮件
        • toly1994.com.toly_email.service.MailService
          • toly1994.com.toly_email.controller.MailController
          • 三、发送附件
            • toly1994.com.toly_email.service.MailService
              • toly1994.com.toly_email.controller.MailController
              • 四、发送图片
                • toly1994.com.toly_email.service.MailService
                  • toly1994.com.toly_email.controller.MailController
                    • 五、发送模板邮件:使用thymeleaf,不熟悉的小伙伴可移驾到这篇:模板引擎--thymeleaf
                      • toly1994.com.toly_email.controller.MailController
                        • 模板:templates/emailTemp.html
                        • 后记、
                          • 1.声明:
                          相关产品与服务
                          云数据库 MySQL
                          腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档