热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件的实现

这篇文章主要介绍了SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

JavaMail是Java开发中邮件处理的开源类库,支持常用协议如:SMTP、POP3、IMAP

一、SpringBoot整合

1、需要在pom文件中添加依赖spring-boot-starter-mail


 org.springframework.boot
 spring-boot-starter-mail

构建项目,加载相关jar包

2、在application.yml中配置邮件发送的相关信息

spring:
  mail:
   host: smtp.mxhichina.com   #阿里云发送服务器地址
   port: 25           #端口号
   username: XXX@XXXX.com    #发送人地址 
   password: ENC(Grg2n2TYzgJv9zpwufsf37ndTe+M1cYk)  #密码

3、编写邮件发送工具类MailUtil

MailUtil.java

/**
 * @author chenzan
 * @version V1.0
 * @description 邮件发送
 */

@Component
public class MailUtil {
  @Autowired
  JavaMailSendermailSender;
  @Autowired
  MailPropertiesmailProperties;
  /**
  * 发送邮件测试方法
  */
  public void sendMail(MailBean mailBean) {
    SimpleMailMessage mimeMessage =new SimpleMailMessage();
    mimeMessage.setFrom(mailProperties.getUsername());
    mimeMessage.setTo(mailBean.getToAccount());
    mimeMessage.setSubject(mailBean.getSubject());
    mimeMessage.setText(mailBean.getContent());
    mailSender.send(mimeMessage);
  }

  /**
  * 发送邮件-附件邮件
  * @param boMailBean
  */
  public boolean sendMailAttachment(MailBean mailBean) {
 try {
  MimeMessage mimeMessage =mailSender.createMimeMessage();
      MimeMessageHelper helper =new MimeMessageHelper(mimeMessage, true);
      helper.setFrom(mailProperties.getUsername());
      helper.setTo(boMailBean.getToAccount());
      helper.setSubject(mailBean.getSubject());
      helper.setText(mailBean.getContent(), true);
      // 增加附件名称和附件
      helper.addAttachment(MimeUtility.encodeWord(boMailBean.getAttachmentFileName(), "utf-8", "B"), mailBean.getAttachmentFile());
      mailSender.send(mimeMessage);
  return true;
    }catch (MessagingException e) {
  e.printStackTrace();
  return false;
    }
}

MailBean.java

/**
 * @author chenzan
 * @version V1.0
 */
@Data
public class MailBean {

private Stringsubject;
  private String content;
  private String toAccount;
  private File attachmentFile;
  private String attachmentFileName;
}

4.发送

String email = "XXX@email.com";
String cOntent="测试内容";
String subject = "测试主题";
MailBean mailBean =new MailBean ();
mailBean .setToAccount(email);
boMailBean.setSubject(subject );
boMailBean.setContent(content);
boolean resultSend =mailUtil.sendMailAttachment(boMailBean);

二、查看阿里云邮箱设置

支持SMTP/POP3/IMAP功能,轻松通过客户端软件(outlook、foxmail等)收发邮件。 详细设置 点此查看

三、SpringBoot中集成了jasypt在一定程度上保证密码的安全

1、添加依赖


  1.9


  com.github.ulisesbocchio
  jasypt-spring-boot-starter
  ${jasypt.version}

2、在application.yml中配置加密密钥

jasypt:
 encryptor:
 password: XXXXXXX

3、生成密码对应的密文

@RunWith(SpringRunner.class)
@SpringBootTest
public class EncryptTests {
 @Autowired
  StringEncryptor stringEncryptor;

  @Test
  public void encryptPwd() {
    String result = stringEncryptor.encrypt("XXXX");
    System.out.println(result);
  }
}

4、密文替换

在ENC()中添加对应密文

password: ENC(Grg2n2TYzgJv9zpwufsf37ndTe+M1cYk)  #密码

到此这篇关于SpringBoot整合JavaMail通过阿里云企业邮箱发送邮件的实现的文章就介绍到这了,更多相关SpringBoot JavaMail发送邮件内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!


推荐阅读
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍了 GWT 中 PopupPanel 类的 onKeyDownPreview 方法,提供了多个代码示例及应用场景,帮助开发者更好地理解和使用该方法。 ... [详细]
  • 资源推荐 | TensorFlow官方中文教程助力英语非母语者学习
    来源:机器之心。本文详细介绍了TensorFlow官方提供的中文版教程和指南,帮助开发者更好地理解和应用这一强大的开源机器学习平台。 ... [详细]
  • Explore a common issue encountered when implementing an OAuth 1.0a API, specifically the inability to encode null objects and how to resolve it. ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • 构建基于BERT的中文NL2SQL模型:一个简明的基准
    本文探讨了将自然语言转换为SQL语句(NL2SQL)的任务,这是人工智能领域中一项非常实用的研究方向。文章介绍了笔者在公司举办的首届中文NL2SQL挑战赛中的实践,该比赛提供了金融和通用领域的表格数据,并标注了对应的自然语言与SQL语句对,旨在训练准确的NL2SQL模型。 ... [详细]
  • 梦幻西游挖图奇遇:70级项链意外触发晶清诀,3000W轻松到手
    在梦幻西游中,挖图是一项备受欢迎的活动,无论是小宝图还是高级藏宝图,都吸引了大量玩家参与。通常情况下,小宝图的数量保证了稳定的收益,但特技装备的出现往往能带来意想不到的惊喜。本文讲述了一位玩家通过挖图获得70级晶清项链的故事,最终实现了3000W的游戏币逆袭。 ... [详细]
  • 本文介绍了如何使用JQuery实现省市二级联动和表单验证。首先,通过change事件监听用户选择的省份,并动态加载对应的城市列表。其次,详细讲解了使用Validation插件进行表单验证的方法,包括内置规则、自定义规则及实时验证功能。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文介绍如何使用 Sortable.js 库实现元素的拖拽和位置交换功能。Sortable.js 是一个轻量级、无依赖的 JavaScript 库,支持拖拽排序、动画效果和多种插件扩展。通过简单的配置和事件处理,可以轻松实现复杂的功能。 ... [详细]
author-avatar
诚仔儿
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有