• Springboot整合JavaMail(发送邮件)


    一、邮件的基础概念

    • SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,用于发送电子邮件的传输协议
    • POP3(Post Office Protocol-Version 3):用于接收电子邮件的标准协议
    • IMAP(Internet Mail Access Protocol):互联网消息协议,是POP3的替代协议。

    二、springboot整合JavaMail步骤

    2.1 maven管理坐标,pom.xml

    1. <dependency>
    2. <groupId>org.springframework.bootgroupId>
    3. <artifactId>spring-boot-starter-mailartifactId>
    4. dependency>

    2.2 yml文件配置

    1. spring:
    2. mail:
    3. host: smtp.qq.com #协议,163邮箱就是smtp.163.com
    4. username: 123456@qq.com #发送端的邮箱地址
    5. password: gmsgycitwulgdifd #发送端的邮箱的smtp的密码
    6. port: 465 #腾讯qq的邮箱端口
    7. default-encoding: utf-8
    8. protocol: smtps #与端口绑定的协议,必须设置,而不是采用默认的smtp。要不然抛异常

    2.3 调用客户端

    1. @Autowired
    2. private JavaMailSender javaMailSender; //发送邮件的类
    3. @Override
    4. public void sendMail(Mail mail) {
    5. SimpleMailMessage mailMessage = new SimpleMailMessage(); //邮件的类
    6. mailMessage.setFrom(mail.getFrom()); //发送源的邮箱地址 "123456@qq.com"
    7. mailMessage.setTo(mail.getTo()); //目的邮箱的地址 "1234567@163.com"
    8. mailMessage.setSubject(mail.getSubject()); //邮件的标题
    9. mailMessage.setText(mail.getText()); //邮件内容
    10. javaMailSender.send(mailMessage); //发送邮件
    11. }

    三、多部件邮件

    3.1 发送html格式的内容

    可以是超链接,图片等

    1. @Autowired
    2. private JavaMailSender javaMailSender;
    3. @Override
    4. public void sendMail(Mail mail) {
    5. try {
    6. MimeMessage message = javaMailSender.createMimeMessage();
    7. MimeMessageHelper helper = new MimeMessageHelper(message);
    8. helper.setFrom(mail.getFrom());
    9. List to = mail.getTo();
    10. helper.setTo(to.toArray(new String[to.size()])); //发送给多个邮箱
    11. helper.setSubject(mail.getSubject());
    12. helper.setText(mail.getText(),true);//开启html,内容可以是超链接、图片等
    13. javaMailSender.send(message);
    14. }catch (Exception e){
    15. e.printStackTrace();
    16. }
    17. }

    3.2 发送附件

    1. public MimeMessageHelper(MimeMessage mimeMessage, boolean multipart) throws MessagingException {
    2. this(mimeMessage, multipart, (String)null);
    3. }
    1. @Autowired
    2. private JavaMailSender javaMailSender;
    3. @Override
    4. public void sendMail(Mail mail) {
    5. try {
    6. MimeMessage message = javaMailSender.createMimeMessage();
    7. MimeMessageHelper helper = new MimeMessageHelper(message,true); //开启附件传输
    8. helper.setFrom(mail.getFrom());
    9. List to = mail.getTo();
    10. helper.setTo(to.toArray(new String[to.size()])); //发送给多个邮箱
    11. helper.setSubject(mail.getSubject());
    12. helper.setText(mail.getText(),true);
    13. //添加附件
    14. File f1 = new File(mail.getFileName());
    15. helper.addAttachment(f1.getName(),f1);//文件名,文件句柄
    16. javaMailSender.send(message);
    17. }catch (Exception e){
    18. e.printStackTrace();
    19. }
    20. }

  • 相关阅读:
    Kafka生产者消息异步发送并返回发送信息api编写教程
    实验十七:模拟霍尔传感器实验
    XILINX vivado fft IP延时值
    查找并删除指定文件夹下包含有指定的关键词的文件(GUI界面)
    【PG】PostgreSQL参数格式 配置文件格式
    UE5 局域网联机,寻找会话失败。
    力扣(LeetCode)2095. 删除链表的中间节点(C++)
    iOS创建苹果证书、制作p12证书流程
    【黄啊码】垃圾回收可以赚钱,那php的垃圾回收机制你懂多少?
    C++中的模板
  • 原文地址:https://blog.csdn.net/weixin_51725434/article/details/127821429