Spring||Mails
JMail可以解决Java发送邮件,通过Jmail的核心javax.mail.jar实现,通过Jmail发送邮件需要经过以下步骤
1.创建解析邮件内容:Message类,通过javax.mail.internet.MimeMessage来构造复杂的信息
2.使用Transpot类发送邮件,实现了SMTP的SMTPSTranspot,
3.接收邮件,通过store类来接收邮件,他的实例对象代表了某个接收协议的邮件对象
public class Mail{
public void send(){
//利用Properties封装对象信息并提供服务器信息
Properties prop = System.getProperties();
//主机名
prop.put("mail.smtp.host",mailServer);
//是否身份验证
prop.put("mail.smtp.auth","true");
//创建验证器
EmailAuthenticator mailauth = new RmailAuthenticator(username,password);
//获取Session对象
SessionmailSession= Session.getInstance(prop,(Authenticator)mailauth);
//封装Message 对象
try{
Message message = new MimeMessage(mailSession);
//设置发件人
message.setFrom(new InternetAddress(from));
//设置收件人,分为TO(主送地址)CC(抄送地址)BCC(秘密抄送)
message.setRecipent(Message.RecipientType.TO,new InternetAddress(to));
//设置主题
message.setSubject(mailSubject);
//设置内容,声明utf-8编码格式防止乱码
message.setContent(mailContent,"text/html;charset=utf-8");
//设置日期
message.setSentDate(new Date());
//创建Transpot实例
Transpot tran = mailSession.getTranspot("smtp");
//发送
tran.send(message,message.geetAllRecipients());
//close
tran.close();
}catch(Exception ex){
ex.printStackTrace();
}
}
}
Spring Mail
在Spring环境下需要在org.springframework.mail包里使用MailMessage和MailSender
MailMessage接口的方法
void setFrom(String from) : 设置发送地址
void setTo(String to): 设置一个主送地址,如果设置多个地址,利用setTo(String[]to)
void setReplyTo(String replyTo) :设置回复地址
void setCc(String cc):设置抄送地址
MailSender接口主要方法
void Send(SimpleMailMessage simpleMessage) 发送简单信息邮件
void send(SimpleMailMessage[] simpleMessage) 一次性发送邮件
JavaMailSender
MimeMessage createMimeMessage() 为Sender相关的JavaMail Session创建一个MimeMessage对象
MimeMessage createMimeMessage(InputStream content) 使用给定的输入流作为信息来源,为Sender相关的JavaMail Session
void send(MimeMessage mimeMessage) 发送MIME邮件
Spring||Mails的更多相关文章
- Spring系列之依赖注入的方式
一.依赖注入方式 对于spring配置一个bean时,如果需要给该bean提供一些初始化参数,则需要通过依赖注入方式,所谓的依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象 ...
- Spring学习进阶(二)Spring IoC
在使用Spring所提供的各种丰富而神奇的功能之前,必须在Spring IoC容器中装配好Bean,并建立Bean与Bean之间的关联关系.控制反转(Inverser of Control ioc)是 ...
- Spring常用的接口和类(二)
七.BeanPostProcessor接口 当需要对受管bean进行预处理时,可以新建一个实现BeanPostProcessor接口的类,并将该类配置到Spring容器中. 实现BeanPostPro ...
- (spring-第3回【IoC基础篇】)spring的依赖注入-属性、构造函数、工厂方法等的注入(基于XML)
Spring要把xml配置中bean的属性实例化为具体的bean,"依赖注入"是关卡.所谓的"依赖注入",就是把应用程序对bean的属性依赖都注入到spring ...
- spring中Bean的注入参数详解
字面值 一般指可用字符串表示的值,这些值可以通过<value>元素标签进行注入.在默认情况下,基本数据类型及其封装类.String等类型都可以采取字面值注入的方式,Spring容器在 ...
- Spring基础学习(二)—详解Bean(上)
在Spring配置文件中,用户不但可以将String.int等字面值注入Bean中,还可以将集合.Map等类型注入Bean中,此外还可以注入配置文件中其他定义的Bean. 一.字面值 ...
- Spring常用接口和类
一.ApplicationContextAware接口 当一个类需要获取ApplicationContext实例时,可以让该类实现ApplicationContextAware接口.代码展示如下: p ...
- Spring 学习笔记 ----依赖注入
依赖注入 有三种方式,本文只学习下属性注入. 属性注入 属性注入即通过 setXxx方法()注入Bean的属性值或依赖对象,由于属性注入方式具有可选择性和灵活性高的优点,因此属性注入方式是 ...
- 解决spring boot JavaMailSender部分收件人错误导致发送失败的问题
使用spring boot通常使用spring-boot-starter-mail进行邮件的发送.当进行邮件群发的话,如果一个收件人的地址错误,会导致所有邮件都发送失败.因此我们需要在邮件发送失败的时 ...
随机推荐
- 创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装。
问题:创建ROS 工作空间时出现:程序“catkin_init_workspace”尚未安装,程序“catkin_make”尚未安装. 解决方法: source /opt/ros/kinetic/se ...
- winfrom 中 label 文字随着窗体大小变化
在进行winfrom 开发过程中,窗体中的文字需要随着窗体大小变化,否则会影响窗体的美观和客户的体验. 之前曾经试过几种方法效果都不满意,例如将label的Dock 属性设置为fill.这样的设置对解 ...
- Mac OSX原生读写NTFS功能开启方法
macOX系统内建的NTFS支持默认只能读不能写 原生读写NTFS,需要自行终端命令手动开启 1. 插上磁盘 此时Mac桌面应该会显示出插入的磁盘,但是当你想把文件拖入磁盘的时候,发现是不能拖进去的, ...
- oracle merge into 新增或者修改
merge into sn_balance b1 using(select 'admin' as userid,1 as type1 from dual) b2 on(b1.userid=b2.use ...
- nano使用说明
Main nano help text The nano editor is designed to emulate 仿真.模拟 the functionality and ease-of-use o ...
- 2013-10-7 设置combboxItem高度的方法
//首先设置一个较大的 ItemHeight 值,比如 20: //然后设置 ComboBox 的 DrawMode 为 OwnerDrawVariable: //再设置DrawItem事件如下 if ...
- 教你如何成为Spark大数据高手?
教你如何成为Spark大数据高手? Spark目前被越来越多的企业使用,和Hadoop一样,Spark也是以作业的形式向集群提交任务,那么如何成为Spark大数据高手?下面就来个深度教程. Spark ...
- Ralasafe
引用:http://www.baike.com/wiki/Ralasafe Ralasafe 是用Java编写的开源(MIT协议)访问控制中间件.它能够轻松处理登录控制.URL权限控制和(业务级)数据 ...
- Mac PHPStorm清除SVN配置缓存
- SVN 树冲突解决详解
https://blog.csdn.net/xgf415/article/details/75196714 SVN 冲突包括 内容冲突:当两名(或更多)开发人员修改了同一个文件中相邻或相同的行时就会发 ...