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;
}

}

时间: 2024-10-06 13:15:01

Spring中javaMail通过SMTP发送邮件的相关文章

php中通过curl smtp发送邮件

先google了一下,发现很多问相关问题的但没有相关的解答,在phpclasses里也没有找到相关的类于是自己边看stmp的相关协议边开始尝试curl SMTP协议 这个在网上可以找到多相关的例子,可以自己实验一下使用telnet去连接mail服务器 $ telnet 邮箱SMTP服务地址 25 Trying 邮箱服务IP地址... Connected to 邮箱SMTP服务地址. Escape character is '^]'. exchange邮箱服务器地址 Microsoft ESMTP

项目一:第十四天 1.在realm中动态授权 2.Shiro整合ehcache 缓存realm中授权信息 3.动态展示菜单数据 4.Quartz定时任务调度框架—Spring整合javamail发送邮件 5.基于poi实现分区导出

1 Shiro整合ehCache缓存授权信息 当需要进行权限校验时候:四种方式url拦截.注解.页面标签.代码级别,当需要验证权限会调用realm中的授权方法   Shiro框架内部整合好缓存管理器,整合ehcache环境,只需要配置即可.     <dependency> <groupId>net.sf.ehcache</groupId> <artifactId>ehcache-core</artifactId> <version>

Spring集成JavaMail并利用线程池发送邮件

我们系统存在大量发送邮件的需求,项目使用的是Spring框架而JavaMail也能很好的跟Spring进行集成,由于发送邮件最好还是使用异步进行发送,所以这里就采用线程池+JavaMail进行邮件发送,下面看具体代码实现: Step1.引入JavaMail <mail.version>1.4.7</mail.version> <dependency> <groupId>javax.mail</groupId> <artifactId>

将PHPMailer整合到ThinkPHP中实现SMTP发送邮件

ThinkPHP没有邮件发送的功能,于是,我就想了想,就将PHPMailer整合到ThinkPHP中吧. PHPMailer是不符合ThinkPHP规范的插件程序,所以,我们需要先将PHPMailer程序放到ThinkPHP的 Library/Vendor目录下,我这里是最新版的ThinkPHP 3.2,如果是是ThinkPHP 3.2之前的版本,可能就是Lib目录了.Vendor目录专门用于存放非标准ThinkPHP插件的目录,如下: PHPMailer整合到ThinkPHP中的存放目录 接下

Spring与JavaMail

JavaMail与Spring集成开发 spring框架集成JavaMail的主要包 2.mail.properties mail.smtp.host=smtp.163.com mail.smtp.auth=true mail.username=15511111111 mail.password=123 [email protected] 3.使用spring配置(applicationContext-mail.xml) <?xml version="1.0" encoding=

spring+velocity+javamail发送模板邮件

有时候当我们注册完的时候系统会提示有一封邮件发送到了你的邮箱,如何做呢? 就要用到spring+velocity+javamail这3个玩意,其实只用了spring,因为其他2个都被spring集成了. 先看代码 package com.worthtech.app.util; import java.io.File; import java.util.Map; import javax.mail.MessagingException; import javax.mail.internet.Mim

使用Spring整合javaMail发用邮件

1.导入javamail.jar        自行百度下载 2.使用模板发送邮件架包 freemarker.jar 3.Spring配置文件  以及架包这里就不需要说了吧,如果不明白的发我Email :[email protected] //邮件信息设置类 main.java package cn.jbit.email; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.ut

python通过SMTP发送邮件失败,报错505/535

python通过SMTP发送邮件失败:错误1:smtplib.SMTPAuthenticationError: (550, b'User has no permission')    我们使用python发送邮件时相当于自定义客户端根据用户名和密码登录,然后使用SMTP服务发送邮件,新注册的163邮箱是默认不开启客户端授权的(对指定的邮箱大师客户端默认开启),因此登录总是被拒绝,解决办法(以163邮箱为例):进入163邮箱-设置-客户端授权密码-开启(授权码是用于登录第三方邮件客户端的专用密码)

再谈用java实现Smtp发送邮件之Socket编程

很多其它内容欢迎訪问个人站点   http://icodeyou.com 前几天利用Socket实现了用java语言搭建webserver,全程下来应该会对Socket这个东西已经使用的很熟悉了.尽管抽象,可是使用过一次之后就会感受到它在网络通信上的作用是多么的强大.正好,今天就继续用Socket来练习使用下面Smtp协议发送一封简单的电子邮件.今天的故事呢,是我要约我女神出去吃饭啦啦啦~~~所以,面对Smtp.仅仅许成功,不许失败. 全局假定我的邮箱为[email protected]   女