• SpringBoot整合JavaMail---发送邮件


    目录

    补充知识

    一、发送简单邮件

    maven

    配置

    代码

     二、发送多部件邮件

    代码


    补充知识

      我们一般用程序发邮件,很少用程序收邮件

     

    一、发送简单邮件

    maven

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

    配置

    1. spring:
    2. mail:
    3. # 使用SMTP发送邮件 我们使用的是QQ邮箱
    4. host: smtp.qq.com
    5. # 账号 写上自己的qq号
    6. username: 11*******@qq.com
    7. # 此处要去邮箱获取(不要复制这个)
    8. password: eivalefaehrkiaaa

     

    代码

    1. @Service
    2. public class SendMailServiceImpl implements SendMailService {
    3. // springboot已经整合完毕,直接自动装配
    4. @Autowired
    5. private JavaMailSender javaMailSender;
    6. // 发送者
    7. private String from = "114******@qq.com";
    8. // 接收者
    9. private String to="182******@qq.com";
    10. // 标题
    11. private String subject="测试邮件";
    12. // 正文
    13. private String context="你好啊,你收到我的内容了嘛";
    14. @Override
    15. public void sendMail() {
    16. SimpleMailMessage message = new SimpleMailMessage();
    17. // 发送者 ( 和下面一样,我们在发送者的宋勉加了一个名字,所以接收者收到的时候,就会显示这个名字,而不会显示我们发送者的邮箱号了)
    18. message.setFrom(from+"(超级无敌的大帅哥)");
    19. // 接收者
    20. message.setTo(to);
    21. // 标题
    22. message.setSubject(subject);
    23. // 正文
    24. message.setText(context);
    25. // 发送
    26. javaMailSender.send(message);
    27. }
    28. }

     二、发送多部件邮件

     在我们使用的时候,并不会像上面一样仅仅是发送一个很简单的文字内容,可能会有图片,附件等等等等,下面我们就要来实现一下。

    配置不改变

    代码

    1. @Service
    2. public class SendMailServiceImpl implements SendMailService {
    3. // springboot已经整合完毕,直接自动装配
    4. @Autowired
    5. private JavaMailSender javaMailSender;
    6. // 发送者
    7. private String from = "11*******@qq.com";
    8. // 接收者
    9. private String to="18*********@qq.com";
    10. // 标题
    11. private String subject="测试邮件";
    12. // 正文
    13. private String context="<img src='https://img1.baidu.com/it/u=700675537,3936578503&fm=253&app=138&size=w931&n=0&f=JPEG&fmt=auto?sec=1656522000&t=54182c0a2d3f1d8d22d9c24e8556a12e' />" +
    14. "<a href='https://www.baidu.com/' >点我有惊喜</a>" ;
    15. @Override
    16. public void sendMail() {
    17. try {
    18. MimeMessage message = javaMailSender.createMimeMessage();
    19. // 第二个参数true代表可以添加附件 不写的话默认false
    20. MimeMessageHelper helper = new MimeMessageHelper(message,true);
    21. // 发送者 ( 和下面一样,我们在发送者的宋勉加了一个名字,所以接收者收到的时候,就会显示这个名字,而不会显示我们发送者的邮箱号了)
    22. helper.setFrom(from);
    23. // 接收者
    24. helper.setTo(to);
    25. // 标题
    26. helper.setSubject(subject);
    27. // 正文 true 表示正文中的各种html语言要实现,不加true默认false,不管写什么html语言,都当做纯String处理
    28. helper.setText(context,true);
    29. // 添加附件
    30. File file = new File("E:\\zzz.docx");
    31. // 第一个参数:发送过去的附件名字 第二个参数,发送的文件
    32. helper.addAttachment(file.getName(),file);
    33. // 发送
    34. javaMailSender.send(message);
    35. } catch (MessagingException e) {
    36. e.printStackTrace();
    37. }
    38. }
    39. }

     

  • 相关阅读:
    LCD DRM驱动框架分析一
    windows mysql安装
    mysql拼接字符串函数
    如何使用扫码SDK获取扫描成功之后的原图?
    获取远程仓库的信息和远程分支的信息
    HackTheBox-Starting Point--Tier 0---Preignition
    Prompt Learning——Template
    golang反射
    网站为什么需要https证书以及如何申请
    【项目问题】Vue2和Vue3如何使用Pinia?数据持久化?防止storage被篡改?
  • 原文地址:https://blog.csdn.net/weixin_51351637/article/details/125510233