java中的简单、复杂邮件发送

本文介绍如何使用 Spring Boot 发送简单邮件及复杂邮件,包括配置邮件服务器、设置发送者信息、使用 JavaMailSender 接口发送文本与 HTML 格式的邮件。

1.导入Maven包

		<!--对邮件的支持jar-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

2.发送人信息的配置
原理
发送邮件需要配置很多关于发送人的信息,Springboot对此已经通过MailSenderAutoConfiguration 类进行了基本的配置。

MailSenderAutoConfiguration 类:
在这里插入图片描述
这些基本属性又是通过MailProperties来获取
在这里插入图片描述需要做的工作就是给上面的类配置我们自己的发件人相关信息。
添加配置文件:application.properties

application.properties:

# 设置邮箱主机(服务商)
spring.mail.host=smtp.qq.com
# 设置用户名
spring.mail.username=***@qq.com

# 设置密码,该处的密码是QQ邮箱开启SMTP的 **授权码** 而非QQ密码
spring.mail.password= qzbxiwjfrweecacf(邮件官网获取)

# 必须进行授权认证,它的目的就是阻止他人任意乱发邮件
spring.mail.properties.mail.smtp.auth=true

#SMTP加密方式:连接到一个TLS保护连接
spring.mail.properties.mail.smtp.starttls.enable=true
spring.mail.properties.mail.smtp.starttls.required=true

准备完毕发送简单邮件****复杂邮件

package cn.itsource.pethome.org.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.MimeMessageHelper;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

import javax.mail.internet.MimeMessage;

@SpringBootTest
@RunWith(SpringJUnit4ClassRunner.class)
public class EmailTest {
    @Autowired
    private JavaMailSender javaMailSender;

    /**
     * 发送简单邮件
     */
    @Test
    public void  send(){
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        //设置发送人
        mailMessage.setFrom("****@qq.com");
        //邮件主题
        mailMessage.setSubject("新型冠状病毒防护指南");
        //邮件内容
        mailMessage.setText("好好在家待着.....");
        //收件人
        mailMessage.setTo(*****@qq.com");
		//发送邮件
        javaMailSender.send(mailMessage);
    }

    /**
     * 发送复杂邮件
     */
    @Test
    public void test2() throws Exception{
        //创建复杂邮件对象
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        //发送复杂邮件的工具类
        MimeMessageHelper helper = new MimeMessageHelper(mimeMessage,true,"utf-8");
        //设置发送人
        helper.setFrom("*******@qq.com");
        //邮件主题
        helper.setSubject("新型冠状病毒防护指南");
        http://img30.360buyimg.com/popWaterMark/jfs/t1/67988/7/14094/232759/5db64acfE6ab2b09e/38b5cb3dc38b4b1f.jpg"
        //邮件内容
        helper.setText("<h1>新型冠状病毒防护守则</h1>"+
                "<img src='http://img30.360buyimg.com/popWaterMark/jfs/t1/67988/7/14094/232759/5db64acfE6ab2b09e/38b5cb3dc38b4b1f.jpg\"' />",true);
        //添加附件  照片和文件
        //helper.addAttachment("罗宾.jpg",new File("C:\\Users\\hm\\Desktop\\work\\aa.jpg"));
        //helper.addAttachment("压缩文件", new File("C:\\Users\\hm\\Desktop\\20191010\\2020-02-05-智能商贸-DAY4\\resources\\resources.zip"));
        //收件人
        helper.setTo("*****@qq.com");
		//发送邮件
        javaMailSender.send(mimeMessage);
    }

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值