基于Spring的Maven项目实现发送邮件功能的示例
问题分析
现在我们有这样一个需求,就是当我们系统出现问题或bug的时候,让系统通过邮件发送日志信息给相关人员,那么此时,我们就需要实现一个让系统发送邮件的功能
解决步骤
1.pomjar包导入
javax.mail 1.4.1
2.xml配置
application-mail.xml配置
true true
3.交给Spring管理
其实就是将发送邮件的xml配置文件引入到spring的配置文件中
这里需要说明一下,classpath后面是跟的我的一个关于实现这些功能专门的配置文件的文件夹,然后通配文件夹里面所有.xml的配置文件,当然,也可以这样写
这样配置也完全没有任何问题,看个人喜好哈,只是我喜欢把这些相关的配置文件同一放在一个文件夹里面,然后统一一起引入
4.代码实现
需要说明一下,邮件分为两种,一种是普通邮件,即文本信息,不含html代码或附件,另一个种就是包含html代码和附件的,这两种方式相同的是都需要在发送邮件的类里面引入发送邮件的核心对象
@Autowired privateJavaMailSenderjavaMailSender;
4.1普通邮件
需要注意的是这里发送邮件的地址必须是applicaiton-mail.xml中所配置的username
//获取邮箱对象
SimpleMailMessagemessage=newSimpleMailMessage();
//设置由哪个邮箱发出这里自己定义
message.setFrom("xxxxxx@qq.com");
//设置标题
message.setSubject("测试来了哦");
//设置发送内容
message.setText("我来了,你来了没");
//设置发送地址--发给谁
message.setTo("xxxx@icloud.com");
//发送邮件
javaMailSender.send(message);
4.1复杂邮件
//创建一个空邮件对象
MimeMessagemimeMessage=javaMailSender.createMimeMessage();
//创建发送复杂邮件的工具类,并传入空邮件,设置是否有附件为true和编码集
MimeMessageHelpermessageHelper=newMimeMessageHelper(mimeMessage,true,"UTF-8");
//设置发送邮件的邮箱地址,必须和xml里面配置一致
messageHelper.setFrom("xxxxxx@qq.com");
//设置邮件标题
messageHelper.setSubject("复杂邮件标题,就是我");
//设置邮件里面的普通内容
messageHelper.setText("我是复杂邮件,我又来了");
//设置复杂邮件的html代码,并设置是否为html为true
messageHelper.setText("我是复杂邮件的html代码,能实现不?
",true);
//添加发送邮件的附件,是一个图片
messageHelper.addAttachment("hah.png",newFile("img/1.png"));
//添加附件文件
messageHelper.addAttachment("mf文件",newFile("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栏中,然后再运行我们的测试方法即可
到此这篇关于基于Spring的Maven项目实现发送邮件功能的示例的文章就介绍到这了,更多相关SpringMaven项目发送邮件内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。