目录

一、获取邮箱授权码

二、引入依赖

三、配置文件(请注意yml格式,或者使用.properties)

四、不带附件发邮箱

五、带附件发邮箱

六、邮箱类型拓展


本篇文章以QQ邮箱作为发件人写案例演示了不带附件发邮件、带附件发邮件,并在最后讲解了如何用阿里云邮箱、腾讯邮箱、网易邮箱发送邮件.如果不想用qq邮箱,那么可以直接跳过获取邮箱授权码,直接从引入依赖开始看。

一、获取邮箱授权码

使用SpringBoot发送邮箱,首先需要有邮箱的授权码,用QQ邮箱,那就获取QQ邮箱的授权码,网易邮箱,就获取网易邮箱授权码,打开QQ邮箱的设置,点击账户,找到一下信息:

点击开启,按照弹出框操作,随后要把给出的邮箱授权码复制出来 !!!如果想要将发送历史保留在邮箱的已发送,将下图红框选项的勾选即可

二、引入依赖

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-mail</artifactId>
</dependency>

三、配置文件(请注意yml格式,或者使用.properties)

spring:mail:host: smtp.qq.com           #这是邮箱服务器地址username: 1065055030@qq.com #自己的邮箱,也就是发件人password: xxxxxxxxxxxxxxxxx #邮箱授权码default-encoding: UTF-8     #编码格式

配置文件中的password并不是邮箱密码,而是邮箱授权码,此处填写从qq邮箱复制出来的授权码即可

四、不带附件发邮箱

到此配置已经结束,还是非常简单的,下面就来使用,直接上代码,带注释,阅读完即可上手使用,这里不要纠结开发规范了,为了方便,所有东西写到了controller。

@RestController
public class EmailController {@Autowiredprivate JavaMailSender javaMailSender;//发件人邮箱@Value("${spring.mail.username}")private String from;/*** 不带附件发送邮件* @param addressee 收件人邮箱* @param subject 邮件标题* @param content 邮件内容* @return ResultVO*/@RequestMapping(value = "/send", method = RequestMethod.POST)public ResultVO sendEmail(String addressee, String subject, String content) {SimpleMailMessage mailMessage = new SimpleMailMessage();// 发件人邮箱,与配置文件中保持一致,所以直接从配置文件绑定过来了mailMessage.setFrom(from);// 这个发件人也可以设置为中文名称, 如下代码// mailMessage.setFrom(new InternetAddress("某某公司xxx" + "<" + from + ">"));// 收件人mailMessage.setTo(addressee);// 标题mailMessage.setSubject(subject);// 内容, 第一个参数为邮箱内容, 第二个参数为是否启用html格式,// 如果开启, 那么第一个参数如果有html标签, 会自动识别, 邮件样式更好看mailMessage.setText(content, true);javaMailSender.send(mailMessage);return ResultVO.success();}}

五、带附件发邮箱

直接上代码了,此处需要注意的是,即使带附件发送,邮件内容也不能不设置,不设置发送内容则为null,就会报java.io.IOException: Exception writing Multipart这个异常,注意null跟""是有区别的,没有内容可以这么写messageHelper.setText("")。

@RestController
public class EmailController {@Autowiredprivate JavaMailSender javaMailSender;//发件人邮箱@Value("${spring.mail.username}")private String from;@RequestMapping(value = "/sendFile", method = RequestMethod.POST)public ResultVO sendFile(String addressee, String subject) {List<String> files = Arrays.asList("C:\\Users\\E480\\Desktop\\邮件测试文件.txt","C:\\Users\\E480\\Desktop\\邮件测试图片.png");MimeMessage message = javaMailSender.createMimeMessage();try {MimeMessageHelper messageHelper = new MimeMessageHelper(message,true);// 发件人邮箱,与配置文件中保持一致,所以直接从配置文件绑定过来了messageHelper.setFrom(from);// 收件人messageHelper.setTo(addressee);// 标题messageHelper.setSubject(subject);// 发送的内容messageHelper.setText("测试带附件发邮件");FileSystemResource file=null;for (String filePath : files) {file = new FileSystemResource(filePath);// File.separator相当于\,是默认的系统文件分隔符,可以防止切换系统路径出错messageHelper.addAttachment(filePath.substring(filePath.lastIndexOf(File.separator)), file);}javaMailSender.send(message);return ResultVO.success();} catch (MessagingException e) {e.printStackTrace();return ResultVO.fail();}}
}

六、邮箱类型拓展

1. 网易邮箱

我是用QQ邮箱举例的,如果想要用网易邮箱,配置文件可以这么写,

spring:mail:host: smtp.163.com #这是网易邮箱服务器地址username: xxxxxxxx #自己的网易邮箱,也就是发件人password: xxxxxxxx #网易邮箱授权码default-encoding: UTF-8 #编码格式

将邮箱服务器地址改为网易,username和password也改为网易的即可,网易的邮箱授权码如何查看如何打开就不再演示,因为本人没有网易邮箱(lll¬ω¬),百度了一下,看与QQ邮箱授权码获取方式大同小异。剩余的操作跟QQ邮箱发送方式一样。

2. 腾讯企业邮箱or阿里云邮箱

spring:# 发送腾讯企业邮箱邮件配置mail:host: smtp.exmail.qq.com # 如果是阿里云邮箱用 smtp.aliyun.com, 其余都一样protocol: smtpport: 465username: xxxx@xxx.com.cn #邮箱地址password: xxxx #邮箱密码,邮箱的登陆密码,这个不是授权码properties: # 配置以SSL的方式发送, 这个需要使用这种方式并且端口是465mail:smtp:auth: truessl:enable: truesocketFactory:class: com.sun.mail.util.MailSSLSocketFactoryfallback: false

别的操作也没什么区别

SpringBoot发送邮件(QQ邮箱、腾讯企业邮箱、网易邮箱、阿里云邮箱...)相关推荐

  1. 注册 阿里云邮箱 的步骤

    目前阿里云邮箱 不开放注册,只面向 中国雅虎迁移过来的用户. 所以,先注册 中国雅虎即可,再迁移到阿里云邮箱即可. 1.注册中国雅虎 https://login.yahoo.com/config/lo ...

  2. 从阿里云邮箱迁移至网易邮箱

    由于工作原因,需要迁移阿里云邮箱内邮件到126邮箱,步骤如下: 1.登录126邮箱->设置->账号与邮箱中心 2.在邮箱中心->添加其他邮箱->创建邮箱: 3.创建邮箱页面,输 ...

  3. 使用javamail、阿里云邮箱发送邮件

    javaMail的maven坐标: <!-- https://mvnrepository.com/artifact/javax.mail/mail --><dependency> ...

  4. 使用阿里云邮箱发送邮件

    代码部分 /*** 发送邮件 (阿里云邮箱企业版)** @param fromEmail* 发送邮箱* @param toEmail* 接收邮箱* @param emailName* 阿里云邮箱登录名 ...

  5. 万网企业邮箱与阿里云邮箱的SMTP、POP设置

    [转载]万网企业邮箱与阿里云邮箱的SMTP.POP设置 1.万网企业邮箱SMTP.POP设置 邮箱管理网址:http://qiye.aliyun.com,其中万网的邮箱也可以配置成自己的域名邮箱,比方 ...

  6. 阿里云邮箱验证,输入的邮箱地址明明是正确的,但是就是提示一直找不到邮件地址。

    这个问题,说找不到邮件地址,指的不是找不到你输入的邮箱地址,我一开始遇到的时候,也一度怀疑是阿里云邮箱推送服务不能识别腾讯QQ邮箱,但是我换了其他邮箱,比如163.企业邮箱等都还是报这个问题.最后一步 ...

  7. 阿里云邮箱短信验证和阿里云手机短信发送

    1:阿里云邮箱验证:service层 /***输入的格式是2060084769@qq.com* 阿里云邮箱验证* @param email* @param Code* @return*/@Overri ...

  8. java项目——发邮件之阿里云邮箱推送服务(一)

    最近做项目的时候用到了阿里云的邮箱推送.首先站在我自己的理解的角度,为什么要用阿里云邮箱推送服务? 首先从万网说起. 中国万网是中国最大的互联网基础服务提供商之一,服务范围涵盖基础的域名服务.主机服务 ...

  9. 阿里云邮箱POP3、SMTP设置教程

    3G免费网www.3gmfw.cn免费为你分享 阿里云邮箱POP3.SMTP设置教程,阿里云邮箱 阿里云邮箱POP3设置 阿里云邮箱SMTP设置的相关资源如下: 什么是POP3.SMTP? 阿里云邮箱 ...

最新文章

  1. 使用Rancher管理Docker
  2. Cannot create a session after the response has been committed的处理
  3. java写类似百度统计_资讯 | 与百度统计功能类似的产品—360分析系统
  4. python调用数据集mnist_Python读取MNIST数据集
  5. Ubuntu系统 VI 编辑器初试
  6. Gitlab怎样添加组、创建用户、创建项目与推送代码
  7. 生成自签名ssl证书
  8. Xamarin Android 所见即所得问题
  9. Android免费短信验证
  10. 一款漂亮的赞助打赏单页界面美化版源码
  11. 糍粑大叔的独游之旅-战斗!之弹道实现(上)
  12. 如何用阿里云服务器建立一个wordpress网站
  13. 学习 LLVM(11) iplist 和 ilist
  14. 计算机打不开菜鸟打印组件,云打印控件常见问题及解决办法(一)
  15. markdown语法
  16. 各类图像数据大集合(下载链接)
  17. 分布式系统的阿喀琉斯之踵:数据一致性!
  18. Java爬虫历险记 -- (1)爬取百度首页的logo
  19. 解决go语言热部署组件fresh安装问题
  20. 关于机壳地和板子地(GND)的连接

热门文章

  1. 计算机教师工作日志,【小学教师工作日志简短】_小学教师每日工作日志范文...
  2. 2018ccpc-wannafly winter camp div2.Day3、Day4
  3. 我的程序员之路(15)——2019年前半年总结
  4. 包工协议书样本_包工合作合同协议书范本
  5. 浅析加密算法三【Playfair密码】
  6. 荣誉系统排名是整个服务器,[翻译分享]荣誉军衔晋升系统初步解析(2006.4.27更新)...
  7. ubuntu IBUS输入法安装和设置
  8. python开发之旅——面向对象【人狗大战】
  9. 编写函数unsigned int reverse_bit(unsigned int value),实现无符号二进制整数在32位机器上的bit位翻转
  10. js在线写作文本编辑器插件Writty