所有邮件的发送都需要有运营商的支持,例如qq邮箱,163等。要发送邮件需要先获取服务上提供的授权码。以qq邮箱为例:
登陆QQ邮箱,设置–账户–开启POP3/SMTP服务 拿到授权码
在这里插入图片描述
开启服务
在这里插入图片描述发送验证短信
在这里插入图片描述点我已发送,拿到授权码:

                第一步 : 导入jar包
   <!--对邮件的支持jar-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

第二步:创建配置文件 application.properties 优先级比application.yml更高,两个都会加载

# 设置邮箱主机(服务商)
spring.mail.host=smtp.qq.com
# 设置用户名,每个人不同
spring.mail.username=8048984@qq.com

# 设置密码,该处的密码是QQ邮箱开启SMTP的授权码而非QQ密码(授权码)
spring.mail.password=qzbxiwjfrwe

# 必须进行授权认证,它的目的就是阻止他人任意乱发邮件
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

前面三项不是固定的,后三项是固定的

发送普通邮件,SimpleMessage不支持html代码,不支持携带附件
JavaMailSender 是jar包写好的 直接注入就可以使用

@Autowired
private JavaMailSender mailSender;
//发送简单邮件
@Test
public void SimpleMail(){
    SimpleMailMessage message = new SimpleMailMessage();
    //设置发件人
    message.setFrom("8048984@qq.com");
    //设置收件人
    message.setTo("5201314@qq.com");
    //设置标题
    message.setSubject("发送简单邮件");
    //设置内容
    message.setText("<h1>今天是个好天气,不会解析HTML</h1>");
    //发送
    mailSender.send(message);
}

发送复杂邮件 MimeMessage ,支持携带附近

//发送复杂邮件
    @Test
    public void MimeMessage() throws MessagingException {
        //创建一个复杂的空邮件
        MimeMessage message = mailSender.createMimeMessage();
        MimeMessageHelper helper = new MimeMessageHelper(message, true, "utf-8");
        //设置发件人
        helper.setFrom("8048984@qq.com");
        //设置收件人
        helper.setTo("5201314@qq.com");
        //设置标题
        helper.setSubject("明天你是否会想起,昨天你写的日记");
        //设置内容  html  解析html true
        helper.setText("<h1>今天是个好天气,已经解析HTML</h1>" +
                "<a href='http://www.baidu.com'>点我进入百度</a>",true);
        //添加附件,filename必须加上后缀,不然会出问题
        helper.addAttachment("大飞机.jpg", new File("C:\\Users\\Administrator\\Desktop\\b2\\A380.jpg"));
        helper.addAttachment("F22.jpg", new File("C:\\Users\\Administrator\\Desktop\\b2\\F22.jpg"));
        //发送邮件
        mailSender.send(message);
    }
Logo

欢迎加入西安开发者社区!我们致力于为西安地区的开发者提供学习、合作和成长的机会。参与我们的活动,与专家分享最新技术趋势,解决挑战,探索创新。加入我们,共同打造技术社区!

更多推荐