boot-126网易邮件发送

发布于:2025-02-11 ⋅ 阅读:(51) ⋅ 点赞:(0)

                                                      【SpringBoot整合JavaMail发送邮件】
一 . Java Mail基本概念
1.SMTP
Simple Mail Transfer Protocol:简单邮件传输协议,用于发送邮件的协议。
2.POP3
Post office Protocol 3:邮局通讯协议第三版,用于接收邮件的标准协议。
3.IMAP
Internet Message Access Protocol:互联网消息访问协议,是POP3的替代。

二、准备工作
1.注册邮箱 - 126邮箱
2.登陆授权码
主界面->设置->POP3/SMTP/IMAPA
开启服务 | 重启服务
注册手机号扫码->发送指定短信内容->查看授权码

三.开发简单邮件

1.什么叫简单邮件
仅包含邮件标题、邮件正文的普通邮件。

2.引入mail启动器

3.配置mail参数
Spring.mail.username =****** #填写个人真实的mail地址
spring.mail.password =****** #填写授权码(注意不是原始密码)
spring.mail.host =******* #根据具体邮件平台填写发送邮件的host(smtp.126.com)

4.API
JavaMailSender: 发送邮件的客户端
send(mail)
SimpleMailMessage:封装简单邮件的Bean
setsubject(标题)|setText(正文)|setTo(收件地址)|setFrom(发件地址)

四.开发复杂邮件:

1.什么是复杂邮件
区别于简单邮件,复杂邮件可附加更多内容,例如:正文中插入图片或链接、邮件带附件等。

2.API
JavaMailsender: 发送邮件的客户端
send(mail)
MimeMessage:封装复杂邮件的Bean
sender.createMimeMessage()
MimeMessageHelper:设置复杂邮件的辅助工具
setSubiect(标题) | setText(正文,escapeHtml) | setTo(收件地址) | setFrom(发件地址) | addAttachment(fileName,file)

【代码】
1、简单邮件发送:

spring:
    mail:
#        账号
        username: "1xxxx@163.com"
#        授权码
        password: "xxxxx"
        host: "smtp.163.com"
import org.junit.jupiter.api.Test;
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;

@SpringBootTest
class SendEmailApplicationTests {
@Autowired
private JavaMailSender javaMailSender;
private String subject ="邮件标题";
private String content ="邮件正文";
//收件人邮箱
private String to ="xxxx@163.com";
//发送人邮箱
private String from =to;
    @Test
    void contextLoads() {
        SimpleMailMessage mailMessage = new SimpleMailMessage();
        mailMessage.setSubject(subject);
        mailMessage.setTo(to);
        mailMessage.setFrom(from);
        mailMessage.setText(content);
        javaMailSender.send(mailMessage);
        System.out.println("邮件发送成功!");
    }

}

结果:
在这里插入图片描述

1、复杂邮件发送:

package com.example;

import org.junit.jupiter.api.Test;
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 javax.mail.MessagingException;
import javax.mail.internet.MimeMessage;
import java.io.File;

@SpringBootTest
class SendEmailApplicationTests {
@Autowired
private JavaMailSender javaMailSender;
private String subject ="邮件标题";
private String content ="邮件正文";
private String to ="xxxxx@163.com";
private String from =to;
    /**
     * 复杂邮件发送测试方法
     * 正文中添加图片链接,附件等
     */
    @Test
    void contextLoads1() throws MessagingException {
        MimeMessage mimeMessage = javaMailSender.createMimeMessage();
        MimeMessageHelper mimeMessageHelper = new MimeMessageHelper(mimeMessage,true);
        mimeMessageHelper.setSubject(subject);
        mimeMessageHelper.setTo(to);
        mimeMessageHelper.setFrom(from);
        mimeMessageHelper.setText(content+"<img src=https://img2.baidu.com/it/u=3280201741,1314329474&fm=253&fmt=auto&app=138&f=JPEG?w=608&h=1083>", true);
        mimeMessageHelper.addAttachment("附件1", new File("C:\\Users\\ww\\Pictures\\Saved Pictures\\Wallpaper\\programmer_1920.png"));
        javaMailSender.send(mimeMessage);
        System.out.println("邮件发送成功!");
    }


}

出现这个错误:
在这里插入图片描述
解决办法:
在这里插入图片描述
结果:在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到