Spring中javaMail通过SMTP发送邮件
public final class Emails {
/** The java mail sender. */
private static JavaMailSender javaMailSender;
/**
* Send.
*
* @param emailData
* the email data
*/
public static void send(EmailConfig.EmailData emailData) {
EmailOrSmsLogEntity emailOrSmsLogEntity = new EmailOrSmsLogEntity();
emailOrSmsLogEntity.setMessageType(MessageType.Email);
emailOrSmsLogEntity.revodeIp();
try {
JavaMailSender javaMailSender = mailDefaultSender();
MimeMessage message = javaMailSender.createMimeMessage();
MimeMessageHelper messageHelper = new MimeMessageHelper(message,
true, Constants.DEFAULT_ENCODING);
messageHelper.setFrom(emailData.getFrom());
emailOrSmsLogEntity.setFrom(emailData.getFrom());
messageHelper.setTo(emailData.to());
emailOrSmsLogEntity.setTo(StringUtils.join(emailData.to(), ","));
messageHelper.setSubject(emailData.getTitle());
emailOrSmsLogEntity.setSubject(emailData.getTitle());
messageHelper.setText(emailData.getContent(), true);
emailOrSmsLogEntity.setText(emailData.getContent());
Collection<File> files = emailData.getAttachment();
if (files != null) {
List<String> fileNames = Lists.newArrayList();
for (File file : files) {
messageHelper.addAttachment(file.getName(), file);
fileNames.add(file.getName());
}
emailOrSmsLogEntity.addFeatures(EmailOrSmsLogEntity.FILETAG,
StringUtils.join(fileNames, ","));
}
javaMailSender.send(message);
emailOrSmsLogEntity.setSuccess(true);
} catch (Exception e) {
e.printStackTrace();
emailOrSmsLogEntity.setSuccess(false);
emailOrSmsLogEntity.setFailure(Throwables.getStackTraceAsString(e));
}
emailOrSmsLogEntity.createOrUpdate();
}
/**
* Aysn send.
*
* @param emailData
* the email data
*/
public static void aysnSend(final EmailConfig.EmailData emailData) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
send(emailData);
}
});
}
/**
* Mail default sender.
*
* @return the java mail sender
*/
public static JavaMailSender mailDefaultSender() {
return mailSender(SysConfigEntity.config());
}
/**
* Mail sender.
*
* @param config
* the config
* @return the java mail sender
*/
private static JavaMailSender mailSender(EmailConfig config) {
JavaMailSender javaMailSender = mailSender();
if (javaMailSender instanceof JavaMailSenderImpl && config != null) {
JavaMailSenderImpl impl = (JavaMailSenderImpl) javaMailSender;
if (config.getMailHost() != null)
impl.setHost(config.getMailHost());
if (config.getMailPost() != null)
impl.setPort(config.getMailPost());
if (config.getMailUserName() != null)
impl.setUsername(config.getMailUserName());
if (config.getMailPassWord() != null)
impl.setPassword(CryptoUtils.aesDecryptFromHex(
config.getMailPassWord(), KeyConstants.mailPassWord));
}
return javaMailSender;
}
/**
* Mail sender.
*
* @return the java mail sender
*/
private static JavaMailSender mailSender() {
if (javaMailSender != null)
return javaMailSender;
synchronized (Emails.class) {
javaMailSender = Utils.Container.getBean(JavaMailSender.class);
}
return javaMailSender;
}
}
Spring中javaMail通过SMTP发送邮件的更多相关文章
- Spring的JavaMail实现异步发送邮件
具体背景就不说了,可以网上搜索相关知识,或者直接看Sping MailSender的官坊网页.这里就直接实战了(Java实现异步发送电子邮件,包含中文无乱码). Maven: <dependen ...
- 项目一:第十四天 1.在realm中动态授权 2.Shiro整合ehcache 缓存realm中授权信息 3.动态展示菜单数据 4.Quartz定时任务调度框架—Spring整合javamail发送邮件 5.基于poi实现分区导出
1 Shiro整合ehCache缓存授权信息 当需要进行权限校验时候:四种方式url拦截.注解.页面标签.代码级别,当需要验证权限会调用realm中的授权方法 Shiro框架内部整合好缓存管理器, ...
- 通过spring实现javamail发送邮件功能
以前很早的时候大家都用javamail实现发送邮件的功能,而且我们也一直沿用至今,代码拷过来用用就行了,现在我们改为用spring来实现,这样一来减少代码的复杂度,也能更好的契合spring理念 首先 ...
- Spring集成JavaMail并利用线程池发送邮件
我们系统存在大量发送邮件的需求,项目使用的是Spring框架而JavaMail也能很好的跟Spring进行集成,由于发送邮件最好还是使用异步进行发送,所以这里就采用线程池+JavaMail进行邮件发送 ...
- spring利用javamail,quartz定时发送邮件 <转>
原文地址:spring利用javamail,quartz定时发送邮件 <转>作者:物是人非 spring提供的定时发送邮件功能,下面是一个简单的例子以供大家参考,首先从spring配置文件 ...
- 使用 spring封装的javamail linux服务器发送邮件失败解决
原文参考:https://blog.csdn.net/a540891049/article/details/79385471 由于某些平台的linxu服务器为了安全起见 屏蔽了发送邮件的常用端口 25 ...
- 使用System.Net.Mail中的SMTP发送邮件(带附件)
System.Net.Mail 使用简单邮件传输协议SMTP异步发送邮件 想要实现SMTP发送邮件,你需要了解这些类 SmtpClient :使用配置文件设置来初始化 SmtpClient类的新实例. ...
- Spring Boot 使用465端口发送邮件
2017年10月27日 15:04:24 伊宇紫 阅读数:2710 标签: 465端口邮件springboot 更多 个人分类: Java 版权声明:本文为博主原创文章,未经博主允许不得转载. h ...
- (三)集成 JavaMail ,实现异步发送邮件
集成 JavaMail ,实现异步发送邮件 1.JavaMail的核心API 1.1 API功能图解 1.2 API说明 1.2.1 Message 类: 1.2.2 Transport 类 1.2. ...
随机推荐
- Java的流程控制和C++的异同
Java的流程控制和C++基本相似 现将不同的地方总结一下,以便快速掌握. Java的特殊流程控制的特殊部分: 1.顺序结构 -- 没有区别 2.分之结构 -- 没有区别 3.循环结构 1> ...
- 微软How old do I Look——初体验
前段时间微软发布了一个可爱的网站how old.net,着实火了一把,全民体验魔镜魅力. 上传自己的靓照到http://www.how-old.net/,它就可以告诉你性别和年龄,大家还习惯称之为“颜 ...
- 【转】C#多线程
C#中的多线程编程 C#是.Net平台的通用开发工具,它能够建造所有的.Net应用.在.Net中所有线程都运行在应用程序域(AppDomain)中,这也许让你想到Win32进程,实际上它们还是有很大的 ...
- elasticsearch-PHP第一天
遇到很大的问题就是,给边做边找原因,看官方文档,全英文看不懂.只能慢慢一步一步去做. 性子太急,真的不行,跨越性太大,卡一个小时多,才发现,连安装都没搞明白. 首先需要一个JAVA环境,上百度 ...
- NOIP 考前 Tarjan复习
POJ 1236 给定一个有向图,求: 1) 至少要选几个顶点,才能做到从这些顶点出发,可以到达全部顶点 2) 至少要加多少条边,才能使得从任何一个顶点出发,都能到达全部顶点 第一个就是缩点之后有多少 ...
- 2014西安现场赛F题 UVALA 7040
地址 题意:求在m种颜色中挑选k种颜色,给n个花朵涂色有几种方法. 分析:画图可以发现,基本的公式就是k ×(k-1)^(n-1).但这仅保证了相邻颜色不同,总颜色数不超过k种,并没有保证恰好出现k种 ...
- Codeforces 570C 贪心
题目:http://codeforces.com/contest/570/problem/C 题意:给你一个字符串,由‘.’和小写字母组成.把两个相邻的‘.’替换成一个‘.’,算一次变换.现在给你一些 ...
- linux删除文件后沒有释放空间
在Linux或者Unix系统中,通过rm或者文件管理器删除文件将会从文件系统的文件夹结构上解除链接(unlink).然而假设文件是被 打开的(有一个进程正在使用),那么进程将仍然能够读取该文件,磁盘空 ...
- [C++] MyList<T>
完成作业型...保证无bug,完全没考虑效率. #include <iostream> using namespace std; #define DEBUG #ifdef DEBUG #d ...
- 转---B/S结构JavaEE WebApp的全自动安装包制作心得
JavaEE的Web应用程序如今已大行其道,但其安装.配置.部署却一直繁琐无比,客观上阻碍了Web应用程序更大规模的推广和应用.因此,开发方制作一个集JDK.Web中间件.开源数据库的全自动安装程序很 ...