spring-boot 速成(10) -【个人邮箱/企业邮箱】发送邮件

发邮件是一个很常见的功能,代码本身并不复杂,有坑的地方主要在于各家邮件厂家的设置,下面以qq个人邮箱以及腾讯企业邮箱为例,讲解如何用spring-boot发送邮件:

一、添加依赖项

compile 'org.springframework.boot:spring-boot-starter-mail'

二、application.yml配置

2.1 QQ个人邮箱

spring:
  application:
    name: mail-demo
  mail:
    host: smtp.qq.com
    username: xxxx@qq.com # 这里填写个人的qq邮箱
    password: ***** # 注:这里不是qq邮箱的密码,而是授权码
    properties:
      mail.smtp.auth: true
      mail.smtp.starttls.enable: true
      mail.smtp.starttls.required: true

生成授权码的方法参考下图:

2.3 QQ企业邮箱

spring:
  application:
    name: mail-demo
  mail:
    host: smtp.exmail.qq.com
    username: xxxx@puscene.com # 这里填写企业邮箱
    password: **************** # 这里填写企业邮箱登录密码
    properties:
      mail.smtp.auth: true
      mail.smtp.socketFactory.class: javax.net.ssl.SSLSocketFactory
      mail.smtp.socketFactory.fallback: false
      mail.smtp.socketFactory.port: 465  

 企业邮箱如果未开启安全登录,就不需要授权码了,直接填写登录密码即可。如果开启了安全登录,参考下图:

则password这里,需要填写客户端专用密码

三、 发送代码示例

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.data.redis.RedisRepositoriesAutoConfiguration;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.context.ConfigurableApplicationContext;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;

/**
 * Created by 菩提树下的杨过 on 12/08/2017.
 */
@SpringBootApplication
public class MailDemo {

    public static void main(String[] args) {
        
        ConfigurableApplicationContext context = SpringApplication.run(MailDemo.class, args);
        JavaMailSender mailSender = context.getBean(JavaMailSender.class);

        SimpleMailMessage message = new SimpleMailMessage();
        message.setFrom("菩提树下的杨过<xxxxxxxx@xxx.com>"); //注意这里的发送人邮箱,要与yml配置中的username相同,否则验证不通过

        message.setTo("xxx@126.com");
        String[] ccList = new String[]{"xxxx@126.com", "yang.junming@xxxx.com"};//这里添加抄送人名称列表
        message.setCc(ccList);
        String[] bccList = new String[]{"yyyy@126.com", "yjmyzz@xxxx.com"};//这里添加密送人名称列表
        message.setBcc(bccList);
        message.setSubject("主题:简单邮件(QQ个人邮件)-抄送,密送测试");
        message.setText("测试邮件内容");
        mailSender.send(message);
        System.out.println("发送成功!");
    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Java面试笔试题

Spring中自动装配的方式有哪些?

3801
来自专栏黄日成的专栏

浅析 P2P 穿越 NAT 的原理、技术、方法 (上)

在 NAT 环境下,实现 P2P 通信的完整解决方案包括几个部分呢?相关的原理、方法、技术有哪些?

2.2K1
来自专栏坚毅的PHP

python日志按时间切分-----TimedRotatingFileHandler

原生loggging类+ TimedRotatingFileHandler类 实现按day hour second 切分 原生loggging类+ Timed...

5086
来自专栏张戈的专栏

修改Apache的超时设置,解决长连接请求超时问题

某日,组内后台开发找到我,问我们的 WEB 服务器超时设置是多少。他反馈的问题是,有一个 VLAN 切换任务 cgi 接口经常返回 504 网关超时错误,要我分...

1.1K8
来自专栏北京马哥教育

Linux入侵审查浅谈

1. 检查帐户 # less /etc/passwd # grep :0: /etc/passwd(检查是否产生了新用户,和UID、GID是0的用户) # ls...

3519
来自专栏JMCui

SpringBoot 之集成邮件服务.

    Spring Email 抽象的核心是 MailSender 接口,MailSender 的实现能够把 Email 发送给邮件服务器,由邮件服务器实现邮...

1432
来自专栏精讲JAVA

搞定所有的跨域请求问题 : jsonp &amp;amp; CORS

网上各种跨域教程,各种实践,各种问答,除了简单的 jsonp 以外,很多说 CORS 的都是行不通的,老是缺那么一两个关键的配置。本文只想解决问题,所有的代码经...

1593
来自专栏散尽浮华

Linux下部署Samba服务环境的操作记录

关于Linux和Windows系统之间的文件传输,很多人选择使用FTP,相对较安全,但是有时还是会出现一些问题,比如上传文件时,文件名莫名出现乱码,文件大小改变...

4588
来自专栏JavaEE

springboot快速入门前言:一、springboot简介:二、springboot常用知识点:总结:

正所谓,天下武功,唯快不破,在当今生活节奏越来越快的时代,我们也要讲求效率,也要追求一个快字(不过有些方面还是不能快的,不要当快男哦)。springboot就是...

1081
来自专栏菩提树下的杨过

windows 2003 32位系统能支持的最大内存数

先要开启PAE功能,方法如下: 打开 Boot.ini 文件,然后将 /PAE 参数添加到 boot.ini中,如以下所示: multi(0)disk(0)rd...

2168

扫码关注云+社区

领取腾讯云代金券