# spring-boot-mail **Repository Path**: samsom/spring-boot-mail ## Basic Information - **Project Name**: spring-boot-mail - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2019-07-07 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 1、添加mail依赖 ```xml org.springframework.boot spring-boot-starter-mail ``` ## 2、添加配置信息(以QQ邮箱为例) ```properties # 设置邮箱主机 spring.mail.host=smtp.qq.com # 设置用户名 spring.mail.username=发送邮件的邮箱(xxxx@qq.com) # 设置密码,该处的密码是QQ邮箱开启SMTP的授权码而非QQ密码 spring.mail.password=xxxxxx # 设置是否需要认证,如果为true,那么用户名和密码就必须的, # 如果设置false,可以不设置用户名和密码,当然也得看你的对接的平台是否支持无密码进行访问的。 spring.mail.properties.mail.smtp.auth=true # STARTTLS[1] 是对纯文本通信协议的扩展。它提供一种方式将纯文本连接升级为加密连接(TLS或SSL),而不是另外使用一个端口作加密通信。 spring.mail.properties.mail.smtp.starttls.enable=true spring.mail.properties.mail.smtp.starttls.required=true spring.freemarker.cache=false ``` 一旦添加了mail依赖之后,SpringBoot会根据配置文件内容来创建 **JavaMailSender** 实例,只需要在使用的地方通过依赖注入的方式注入 **JavaMailSender** 对象。 ## 3、测试 ### 3.1、简单邮件的发送 创建 **SimpleMailMessage** 对象即可 ```java @Autowired private JavaMailSender javaMailSender; SimpleMailMessage mailMessage = new SimpleMailMessage(); mailMessage.setFrom("发送邮件的邮箱"); mailMessage.setTo("接收邮件的邮箱"); mailMessage.setSubject("邮件主题"); mailMessage.setText("邮件的文本内容"); //发送邮箱 javaMailSender.send(mailMessage); ``` ### 3.2、发送带有附件的邮件 创建 **MimeMessage** 对象 ```java @Autowired private JavaMailSender javaMailSender; MimeMessage mimeMessage = javaMailSender.createMimeMessage(); //是否发送的邮件是富文本(附件,图片,html等) MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true); messageHelper.setFrom("发送邮件的邮箱"); messageHelper.setTo("接收邮件的邮箱"); messageHelper.setSubject("测试Springboot发送带附件的邮件"); messageHelper.setText("欢迎进入百度首页"); messageHelper.addAttachment("附件", new FileSystemResource("附件的本地路径(绝对路径或者相对路径皆可)")); javaMailSender.send(mimeMessage); ``` ### 3.3、模版文件(以Freemakrer为例) #### 3.3.1、添加Freemakrer依赖 ```xml org.springframework.boot spring-boot-starter-freemarker ``` #### 3.3.2、在resources/templates/目录下创建模版文件 ```html

你好, ${username}, 这是一封模板邮件!

``` ```java @Autowired private JavaMailSender javaMailSender; MimeMessage mimeMessage = javaMailSender.createMimeMessage(); MimeMessageHelper helper = new MimeMessageHelper(mimeMessage, true); helper.setFrom("发送邮件的邮箱"); helper.setTo("接收邮件的邮箱"); helper.setSubject("测试Springboot发送模版邮件"); Configuration configuration = new Configuration(Configuration.VERSION_2_3_26); //设置模版所在的目录 configuration.setClassForTemplateLoading(this.getClass(), "/templates"); //填充的数据 Map model = new HashMap<>(); model.put("username", "Cay"); //将model数据填充到模版文件中,然后生成html的文本,model中的key对应模版文件的${key} String html = FreeMarkerTemplateUtils.processTemplateIntoString(configuration.getTemplate("mail.ftl"), model); helper.setText(html, true); javaMailSender.send(mimeMessage); ``` **关键代码:** ```java Configuration configuration = new Configuration(Configuration.VERSION_2_3_26); configuration.setClassForTemplateLoading(this.getClass(), "/templates"); FreeMarkerTemplateUtils.processTemplateIntoString(configuration.getTemplate("模版文件"), "模型数据"); ```
------ #### 插入一波广告,欢迎关注 |**#**|**#**| |:--|:--:| |**作者:**|**Cay**| |**QQ:**|点击这里给我发消息| |**邮箱:**|**412425870@qq.com**| |**微信公众号:Cay课堂**|**![](https://github.com/caychen/readme/raw/master/img/%E5%BE%AE%E4%BF%A1%E5%85%AC%E4%BC%97%E5%8F%B7.jpg)**| |**csdn博客:**|**[http://blog.csdn.net/caychen](http://blog.csdn.net/caychen "我的csdn博客")**| |**码云:**|**[https://gitee.com/caychen/](https://gitee.com/caychen/ "我的码云")**| |**github:**|**[https://github.com/caychen](https://gitee.com/caychen/ "我的github")**| |**点击群号或者扫描二维码即可加入QQ群:[328243383(1群)](https://jq.qq.com/?_wv=1027&k=54r3suD)**|**![](https://github.com/caychen/readme/raw/master/img/1%E7%BE%A4.png)**| |**点击群号或者扫描二维码即可加入QQ群:[180479701(2群)](https://jq.qq.com/?_wv=1027&k=521g7zY)**|**![](https://github.com/caychen/readme/raw/master/img/2%E7%BE%A4.png)**|