使用spring的邮件发送功能
使用spring提供的MailSender和JavaMailSender类。
1、邮件对象类
- package cn.luxh.app.mail;
- import java.util.List;
- import org.springframework.core.io.AbstractResource;
- public class Email {
- //发件人
- private String from;
- //收件人
- private String[] to;
- //主题
- private String subject;
- //邮件内容
- private String text;
- //附件
- private List<AbstractResource> resources;
- //geter seter
- //...
- }
2、邮件发送服务类
- package cn.luxh.app.mail;
- import javax.mail.MessagingException;
- import javax.mail.internet.MimeMessage;
- import org.springframework.core.io.AbstractResource;
- import org.springframework.mail.MailSender;
- import org.springframework.mail.SimpleMailMessage;
- import org.springframework.mail.javamail.JavaMailSender;
- import org.springframework.mail.javamail.MimeMessageHelper;
- public class MailService {
- //简单的文本邮件发送类
- private MailSender mailSender;
- //复杂邮件发送类
- private JavaMailSender javaMailSender;
- /**
- * 发送简单的文本邮件
- * @param email
- */
- public void send(Email email){
- SimpleMailMessage smm = new SimpleMailMessage();
- smm.setFrom(email.getFrom());
- smm.setSubject(email.getSubject());
- smm.setTo(email.getTo());
- smm.setText(email.getText());
- mailSender.send(smm);
- }
- /**
- * 发送复杂邮件
- * @param email
- * @throws MessagingException
- */
- public void sendMime(Email email) throws MessagingException{
- MimeMessage mm = javaMailSender.createMimeMessage();
- //加上编码,解决中文乱码
- MimeMessageHelper helper = new MimeMessageHelper(mm,true,"GB2312");
- helper.setFrom(email.getFrom());
- helper.setTo(email.getTo());
- helper.setSubject(email.getSubject());
- helper.setText(email.getText(),true);
- //添加附件
- if(email.getResources()!=null && email.getResources().size()>0) {
- for(AbstractResource resource:email.getResources()) {
- helper.addAttachment(resource.getFilename(), resource);
- }
- }
- javaMailSender.send(mm);
- }
- public MailSender getMailSender() {
- return mailSender;
- }
- public void setMailSender(MailSender mailSender) {
- this.mailSender = mailSender;
- }
- public JavaMailSender getJavaMailSender() {
- return javaMailSender;
- }
- public void setJavaMailSender(JavaMailSender javaMailSender) {
- this.javaMailSender = javaMailSender;
- }
- }
3、邮件属性配置文件mail.properties
- #smtp服务器
- mail.host=smtp.163.com
- #用户名
- mail.username=heymenfolk@163.com
- #密码
- mail.password=your password
4、spring配置文件
- <?xml version="1.0" encoding="UTF-8"?>
- <beans xmlns="http://www.springframework.org/schema/beans"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xmlns:context="http://www.springframework.org/schema/context"
- xsi:schemaLocation="
- http://www.springframework.org/schema/beans
- http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
- http://www.springframework.org/schema/context
- http://www.springframework.org/schema/context/spring-context-3.2.xsd">
- <!-- 启用注解支持 -->
- <context:annotation-config />
- <!-- 加载属性文件 -->
- <context:property-placeholder location="classpath:mail.properties" />
- <bean id="javaMailSender" class="org.springframework.mail.javamail.JavaMailSenderImpl">
- <property name="host" value="${mail.host}"/>
- <property name="username" value="${mail.username}"/>
- <property name="password" value="${mail.password}"/>
- </bean>
- <bean id="mailService" class="cn.luxh.app.mail.MailService">
- <property name="mailSender" ref="javaMailSender"/>
- <property name="javaMailSender" ref="javaMailSender"/>
- </bean>
- </beans>
5、测试
- package cn.luxh.app.test;
- import java.util.ArrayList;
- import java.util.List;
- import javax.mail.MessagingException;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.core.io.AbstractResource;
- import org.springframework.core.io.ClassPathResource;
- import org.springframework.core.io.FileSystemResource;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
- import cn.luxh.app.mail.Email;
- import cn.luxh.app.mail.MailService;
- @RunWith(SpringJUnit4ClassRunner.class)
- @ContextConfiguration(locations={"classpath:app-mail.xml"})
- public class MailTester {
- @Autowired
- private MailService mailService;
- @Test
- public void testSendMail() {
- Email email = new Email();
- email.setFrom("heymenfolk@163.com");
- email.setTo(new String[]{"21760658@qq.com"});
- email.setSubject("简单文本邮件");
- email.setText("how are you.i am from china!\r你好,程序猿!!");
- mailService.send(email);
- }
- @Test
- public void testSendMimeMail() throws MessagingException {
- Email email = new Email();
- email.setFrom("heymenfolk@163.com");
- email.setTo(new String[]{"21760658@qq.com","heymenfolk@outlook.com"});
- email.setSubject("复杂邮件");
- String text = "<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\"></head><body><h1><a href='http://luxh.cnblogs.com'>我的博客</a></h1></body></html>";
- email.setText(text);
- List<AbstractResource> resources = new ArrayList<AbstractResource>();
- //添加附件
- ClassPathResource file1 = new ClassPathResource("top1.jpg");
- FileSystemResource file2 = new FileSystemResource("d:/中文.txt");
- resources.add(file1);
- resources.add(file2);
- email.setResources(resources);
- mailService.sendMime(email);
- }
- }
使用spring的邮件发送功能的更多相关文章
- spring-boot-route(二十二)实现邮件发送功能
在项目开发中,除了需要短信验证外,有时候为了节省 短信费也会使用邮件发送.在Spring项目中发送邮件需要封装复杂的消息体,不太方便.而在Spring Boot项目中发送邮件就太简单了,下面一起来看看 ...
- SpringBoot 2.X从0到1实现邮件发送功能
Spring中提供了JavaMailSender接口实现邮件发送功能,在SpringBoot2.X中也封装了发送邮件相关的Starter并且提供了自动化配置. 本文目录 一.添加对应的Starter二 ...
- .NET开发邮件发送功能的全面教程(含邮件组件源码)
今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知识 2) ...
- 用ASP.NET Core 1.0中实现邮件发送功能-阿里云邮件推送篇
在上篇中用MailKit实现了Asp.net core 邮件发送功能,但一直未解决阿里云邮件推送问题,提交工单一开始的回复不尽如人意,比如您的网络问题,您的用户名密码不正确等,但继续沟通下阿里云客户还 ...
- redmine邮件发送功能配置详解
redmine的邮件发送功能还是很有用的.像项目有更新啦,任务分配啦,都能邮件发送的相关责任人.我自己在linux服务器上安装并启动了redmine后,邮件一直发送了不了.查了网上的资料,都是讲修改下 ...
- .NET开发邮件发送功能
.NET开发邮件发送功能 今天,给大家分享的是如何在.NET平台中开发“邮件发送”功能.在网上搜的到的各种资料一般都介绍的比较简单,那今天我想比较细的整理介绍下: 1) 邮件基础理论知 ...
- shell邮件发送功能实现
本文中以163邮箱为例,测试shell邮件发送功能.常见的工具有:mailx.sendmail.mutt等. 1.设置邮件客户端 (1)启用pop3.smtp服务,以支持第三方客户端支持 (2)设置授 ...
- System.Net邮件发送功能踩过的坑
System.Net邮件发送功能踩过的坑 目录 System.Net邮件发送功能踩过的坑 1.EazyEmail邮件发送类库 2.邮件发送授权码与邮件密码 3.通过邮件密码来发送邮件 4.Wiresh ...
- Spring Boot 2.0 图文教程 | 集成邮件发送功能
文章首发自个人微信公众号: 小哈学Java 个人网站: https://www.exception.site/springboot/spring-boots-send-mail 大家好,后续会间断地奉 ...
随机推荐
- WAMP Server助你在Windows上快速搭建PHP集成环境
WAMP Server助你在Windows上快速搭建PHP集成环境 原文地址 我想只要爬过几天网的同学都会知道PHP吧,异次元的新版本就是基于PHP的WordPress程序制造出来的,还有国内绝大部分 ...
- android 工程出现感叹号错误
android 工程出现感叹号错误: 错误问题分析,曾经导入的jar已经不存在工程目录中,project从其他地方导入时.没有及时更新,比如说svn下载到.project的文件,或者是path的文件. ...
- IOS开发-UIBarButtonItem系统自带图标总结
1.这四个返回的是后面的单词. UIBarButtonSystemItemDone UIBarButtonSystemItemCancel UIBarButtonSystemItemEdit UIBa ...
- (转)Lambda表达式详解
本文转载自:http://www.cnblogs.com/knowledgesea/p/3163725.html 前言 1.天真热,程序员活着不易,星期天,也要顶着火辣辣的太阳,总结这些东西. 2.夸 ...
- can't run as root without the -u switch
[root@localhost ~]# /usr/local/memcache/bin/memcached can't run as root without the -u switch [root@ ...
- Linux下文件的压缩和解压
tar命令 解包:tar zxvf FileName.tar 打包:tar czvf FileName.tar DirName gz命令 解压1:gunzip FileName.gz 解压2:gzip ...
- Filezilla Server 配置大全
一个开源.免费的FTP服务端程序,Windows 安装程序(0.9.50 beta):右键另存为. 首先说一下FTP的二种模式:主动模式(port mode)与被动模式(passive mode),网 ...
- linux 鼠标中键粘帖功能?!!
转载自:http://yjhexy.iteye.com/blog/785564 ubuntu鼠标中键问题,其实也不是什么问题,ubuntu的鼠标中键是用来快速粘贴的,只是windows用惯了,时不时手 ...
- window下部署php_redis扩展
关于redis的一些特性就不多说了,可以到这里去了解,or click me. 另外,给出一个redis中文API,点我. 首先要下载一个redis软件,可以到官网下载. 注意:官网提供的版本比较高级 ...
- 黄聪:C#图像处理(各种旋转、改变大小、柔化、锐化、雾化、底片、浮雕、黑白、滤镜效果) (转)
一.各种旋转.改变大小 注意:先要添加画图相关的using引用. //向右旋转图像90°代码如下:private void Form1_Paint(object sender, System.Wind ...