SpringBoot-19-之发送邮件

作者: e4e52c116681 | 来源:发表于2018-09-10 13:04 被阅读13次
零、准备工作
<!--发送邮件的依赖-->
<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

相关文章

  • SpringBoot-19-之发送邮件

    零、准备工作 点设置,会有让设置pop3密码的地方 一、发送简单邮件 toly1994.com.toly_emai...

  • Python之发送邮件

    Python之发送邮件 使用SMTP模块发送邮件 发送HTML文件 发送带附件的文件 Django发送文件 各大邮...

  • spring boot 邮件发送基础详解(4种邮件超级详细)

    本文将介绍spring boot邮件发送将介绍以下几个方面: 邮件使用场景 邮件发送原理 邮件发送流程 邮件发送步...

  • SKPSMTPMessage

    SKPSMTPMessage 可以自己实现邮件发送,采用系统的邮件发送会弹出邮件发送框,如果要求静默发送邮件可参照...

  • SpringBoot 系列之邮件发送姿势介绍

    SpringBoot系列之邮件发送姿势介绍 邮件发送,在实际的项目开发中,可能用的不是特别多,如果没有特定的需求,...

  • JavaWeb之邮件发送

    需要jar包mail.jar和javax.mail.jar其中的javax.mail.jar与java标准库中冲突...

  • Python之发送邮件

    导入模块: 邮箱中需要修改一个参数,可以自动发邮件的…… 注意:现在大部分邮箱需要开启smtp和pop功能以及第三...

  • SpringBoot 发送邮件

    # 依赖 # 配置 # 发送简单文本邮件 # 发送html邮件 # 使用邮件模板发送邮件 添加依赖 配置 新建ht...

  • 2018-10-11

    文本邮件的发送 1.邮件发送流程 ​ 邮件的发送是主动行为:主要通过 MUA/邮件客户端软件,将邮件内容发送给对应...

  • python自动发送邮件

    python自动发送邮件 在说python发送邮件之前,需要了解一下简单的邮件发送知识,邮件发送一般通过SMTP协...

网友评论

    本文标题:SpringBoot-19-之发送邮件

    本文链接:https://www.haomeiwen.com/subject/mhksgftx.html