基于Spring的Maven项目实现发送邮件功能的示例

网友投稿 751 2023-06-19

基于Spring的Maven项目实现发送邮件功能的示例

基于Spring的Maven项目实现发送邮件功能的示例

问题分析

现在我们有这样一个需求,就是当我们系统出现问题或bug的时候,让系统通过邮件发送日志信息给相关人员,那么此时,我们就需要实现一个让系统发送邮件的功能

解决步骤

1.pom jar包导入

javax.mail

mail

1.4.1

2.xml配置

application-mail.xml配置

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans.xsd

">

true

true

xmlns:xsi="http://w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="

http://springframework.org/schema/beans

http://springframework.org/schema/beans/spring-beans.xsd

">

true

true

3.交给Spring管理

其实就是将发送邮件的xml配置文件引入到spring的配置文件中

这里需要说明一下,classpath后面是跟的我的一个关于实现这些功能专门的配置文件的文件夹,然后通配文件夹里面所有.xml的配置文件,当然,也可以这样写

这样配置也完全没有任何问题,看个人喜好哈,只是我喜欢把这些相关的配置文件同一放在一个文件夹里面,然后统一一起引入

4.代码实现

需要说明一下,邮件分为两种,一种是普通邮件,即文本信息,不含html代码或附件,另一个种就是包含html代码和附件的,这两种方式相同的是都需要在发送邮件的类里面引入发送邮件的核心对象

@Autowired

private JavaMailSender javaMailSender;

4.1 普通邮件

需要注意的是这里发送邮件的地址必须是applicaiton-mail.xml中所配置的username

//获取邮箱对象

SimpleMailMessage message = new SimpleMailMessage();

//设置由哪个邮箱发出 这里自己定义

message.setFrom("xxxxxx@qq.com");

//设置标题

jOcXiWsXM message.setSubject("测试来了哦");

//设置发送内容

message.setText("我来了,你来了没");

//设置发送地址 -- 发给谁

message.setTo("xxxx@icloud.com");

//发送邮件

javaMailSender.send(message);

4.1 复杂邮件

//创建一个空邮件对象

MimeMessage mimeMessage = javaMailSender.createMimeMessage();

//创建发送复杂邮件的工具类,并传入空邮件,设置是否有附件为true和编码集

MimeMessageHelper messageHelper = new MimeMessageHelper(mimeMessage, true, "UTF-8");

//设置发送邮件的邮箱地址,必须和xml里面配置一致

messageHelper.setFrom("xxxxxx@qq.com");

//设置邮件标题

messageHelper.setSubject("复杂邮件标题,就是我");

//设置邮件里面的普通内容

messageHelper.setText("我是复杂邮件,我又来了");

//设置复杂邮件的html代码,并设置是否为html为true

messageHelper.setText("

//添加发送邮件的附件,是一个图片

messageHelper.addAttachment("hah.png",new File("img/1.png"));

//添加附件文件

messageHelper.addAttachment("mf文件",new File("s/login.jsp"));

//抄送给谁 这里的参数可以是数组,即多个接收对象

messageHelper.setCc("mmmm@qq.com");

//发送给谁 这里的参数可以是数组,即多个接收对象

messageHelper.setTo("xxxx@icloud.com");

//发送邮件

javaMailSender.send(mimeMessage);

5.邮箱配置

注意,大家不要以为现在就可以直接发送了,还需要大家花一毛钱才行,这个钱不是给我哈,也不是给邮箱或浏览器,而是给到运营商,这里就以QQ邮箱为例:

第一步,点击邮箱首页左上角的设置

第二步,选中设置里面的账户设置

第三步,往下翻,翻到POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务

第四步,会让你发送短信,这时候就可以直接发送短信,这里就到了收钱的地方,看吧,不是我收哈

最后,当发送成功之后,就会收到一个授权码,记住它,然后填入你的application-mail.xml里面的password栏中,然后再运行我们的测试方法即可

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python实现filter函数实现字符串切分
下一篇:Windows中在IDEA上安装和使用JetBrains Mono字体的教程
相关文章

 发表评论

暂时没有评论,来抢沙发吧~