SpringBoot -> 发送邮件


转载: 利用java实现发送邮件
转载: Spring Boot实现邮件发送

导包

如果是mvn项目的话,我们只需要添加依赖即可

<dependency>
<groupId>javax.mail</groupId>
<artifactId>mail</artifactId>
<version>1.5.0-b01</version>
</dependency>

普通:创建一封简单的电子邮件

邮件创建步骤:

  1. 创建一个邮件对象(MimeMessage);
  2. 设置发件人,收件人,可选增加多个收件人,抄送人,密送人;
  3. 设置邮件的主题(标题);
  4. 设置邮件的正文(内容);
  5. 设置显示的发送时间;
  6. 保存到本地。
    代码如下:
public class TestMail {
    public static void main(String[] args) throws Exception {
        // 1. 创建一封邮件
        Properties props = new Properties();                // 用于连接邮件服务器的参数配置(发送邮件时才需要用到)
        Session session= Session.getInstance(props);        // 根据参数配置,创建会话对象(为了发送邮件准备的)
        MimeMessage message = new MimeMessage(session);     // 创建邮件对象
 
        /*
         * 也可以根据已有的eml邮件文件创建 MimeMessage 对象
         * MimeMessage message = new MimeMessage(session, new FileInputStream("myEmail.eml"));
         */
 
        // 2. From: 发件人
        //    其中 InternetAddress 的三个参数分别为: 邮箱, 显示的昵称(只用于显示, 没有特别的要求), 昵称的字符集编码
        //    真正要发送时, 邮箱必须是真实有效的邮箱。
        message.setFrom(new InternetAddress("email@send.com", "USER_AA", "UTF-8"));
 
        // 3. To: 收件人
        message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress("cc@receive.com", "USER_CC", "UTF-8"));
        //    To: 增加收件人(可选)
        message.addRecipient(MimeMessage.RecipientType.TO, new InternetAddress("dd@receive.com", "USER_DD", "UTF-8"));
        //    Cc: 抄送(可选)
        message.setRecipient(MimeMessage.RecipientType.CC, new InternetAddress("ee@receive.com", "USER_EE", "UTF-8"));
        //    Bcc: 密送(可选)
        message.setRecipient(MimeMessage.RecipientType.BCC, new InternetAddress("ff@receive.com", "USER_FF", "UTF-8"));
 
        // 4. Subject: 邮件主题
        message.setSubject("邮件主题", "UTF-8");
 
        // 5. Content: 邮件正文(可以使用html标签)
        message.setContent("这是邮件正文", "text/html;charset=UTF-8");
 
        // 6. 设置显示的发件时间
        message.setSentDate(new Date());
 
        // 7. 保存前面的设置
        message.saveChanges();
 
        // 8. 将该邮件保存到本地
        OutputStream out = new FileOutputStream("myEmail.eml");
        message.writeTo(out);
        out.flush();
        out.close();
    }
}

springboot方式

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

基本配置
配置邮箱基本信息
项目创建成功后,接下来在 application.properties 中配置邮箱的基本信息:

spring.mail.host=smtp.163.com
spring.mail.port=25
spring.mail.username=13XXXXXXX12@163.com
spring.mail.password=123456yjn
spring.mail.default-encoding=UTF-8
spring.mail.properties.mail.smtp.socketFactoryClass=javax.net.ssl.SSLSocketFactory
spring.mail.properties.mail.debug=true

配置含义分别如下:
配置 SMTP 服务器地址
SMTP 服务器的端口 163邮箱不用SSL默认25端口,用SSL可用465/994端口(QQ等大厂用ssl)
配置邮箱用户名
配置密码,注意,不是真正的密码,而是刚刚申请到的授权码(是一个类似激活码的东西)
默认的邮件编码
配饰 SSL 加密工厂(qq邮箱等大厂需要)
表示开启 DEBUG 模式,这样,邮件发送过程的日志会在控制台打印出来,方便排查错误(有信息)
代码:

@RunWith(SpringRunner.class)
@SpringBootTest
public class MailApplicationTests {

    @Autowired
    JavaMailSender javaMailSender;

    @Test
    public void contextLoads() {
        SimpleMailMessage message = new SimpleMailMessage();
        message.setSubject("这是一封测试邮件");
        message.setFrom("13XXXXXXX12@163.com");
        message.setTo("95XXXXX50@qq.com");
        message.setCc("37xxxxx37@qq.com");
    	message.setBcc("14xxxxx098@qq.com");
        message.setSentDate(new Date());
        message.setText("这是测试邮件的正文");
        javaMailSender.send(message);
    }
}

从上往下,代码含义分别如下:

构建一个邮件对象
设置邮件主题
设置邮件发送者
设置邮件接收者,可以有多个接收者
设置邮件抄送人,可以有多个抄送人
设置隐秘抄送人,可以有多个
设置邮件发送日期
设置邮件的正文
发送邮件
最后执行该方法,就可以实现邮件的发送

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值