- 浏览: 92373 次
- 性别:
- 来自: 湖南
文章分类
最新评论
-
化蝶自在飞:
还是走腾讯应用宝吧.
微信扫二维码下载客户端被挡 -
hyper1987stone:
java敏感词过滤 -
菜鸟级JAVA:
先引用2个js(一个jquery、一个日期插件),然后在需要使 ...
java jsp 日期控件 -
woshishen__74:
你的有点问题 是不是少了一个jar包?????
java jsp 日期控件
调用代码如下:
代码如下:
if(!StringUtil.isNullOrEmpty(address)){ SendEmailUtil.sendEmail(globalProperties.getEmailSubject() , noticeMsg.toString() , address , globalProperties.getEmailIsSend(), globalProperties.getEmailAccount() , globalProperties.getEmailPassword() , globalProperties.getEmailFromAddress() , globalProperties.getEmailHost() , globalProperties.getEmailPort()); }else{ this.logger.debug("重置密码时,邮件无法发送,原因为:账户邮箱地址为空"); }
代码如下:
package com.banger.ubip.common.utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.util.Date; import java.util.Properties; import java.util.StringTokenizer; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; import javax.mail.Address; import javax.mail.Authenticator; import javax.mail.BodyPart; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.Multipart; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.*; /** * @Author luozx * @Date 2016/12/26 10:20. */ public class SendEmailUtil extends Authenticator implements Runnable{ private static final boolean validate = true; private String subject; private String account; private String password; private String fromAddress; private String msg; private String address; private Properties pro = new Properties(); private static Session sendMailSession = null; private String emailIsSend;//邮件是否发送的开关 true为发送邮件 protected Logger logger = LoggerFactory.getLogger(getClass()); //邮件发送的线程池 private static ThreadPoolExecutor executor = new ThreadPoolExecutor(10, 10, 200, TimeUnit.MILLISECONDS, new ArrayBlockingQueue<Runnable>(10)); public static void sendEmail(String subject , String msg , String address , String emailIsSend , String account, String password, String fromAddress, String host, String port) { SendEmailUtil set = new SendEmailUtil(subject , msg , address , emailIsSend ,account, password, fromAddress, host, port); executor.execute(set); } public SendEmailUtil(String subject , String msg , String address , String emailIsSend , String account, String password, String fromAddress, String host, String port) { super(); this.subject = subject; this.account = account; this.password = password; this.fromAddress = fromAddress; this.msg = msg; this.address = address; this.emailIsSend = emailIsSend; pro.put("mail.smtp.host",host); pro.put("mail.smtp.port",port); pro.put("mail.smtp.auth", validate ? "true" : "false"); } @Override public void run() { if(!StringUtil.isNullOrEmpty(emailIsSend) && "true".equals(emailIsSend)){ InternetAddress[] ia = parseAddress(address); sendTextMail(ia,subject,msg); logger.info("邮件发送完成,接收者为:[{}]",address); } } @Override protected PasswordAuthentication getPasswordAuthentication() { return new PasswordAuthentication(account, password); } /** * 以文本格式发送邮件 * * @param ToAddress * @param Subject * @param Content * 待发送的邮件的信息 */ public boolean sendTextMail(InternetAddress[] ToAddress, String Subject, String Content) { // 判断是否需要身份认证 try { // 根据邮件会话属性和密码验证器构造一个发送邮件的session // Session sendMailSession = Session.getDefaultInstance(pro, this); if (sendMailSession == null) { sendMailSession = Session.getDefaultInstance(pro, this); } // 根据session创建一个邮件消息 Message mailMessage = new MimeMessage(sendMailSession); // 创建邮件发送者地址 Address from = new InternetAddress(fromAddress); // 设置邮件消息的发送者 mailMessage.setFrom(from); // 创建邮件的接收者地址,并设置到邮件消息中 if (ToAddress.length == 1) { mailMessage.setRecipients(Message.RecipientType.TO, ToAddress); } else { mailMessage.setRecipients(Message.RecipientType.BCC, ToAddress); } // 设置邮件消息的主题 mailMessage.setSubject(MimeUtility.encodeText(Subject,MimeUtility.mimeCharset("utf-8"), null)); // 设置邮件消息发送的时间 mailMessage.setSentDate(new Date()); // 设置邮件消息的主要内容 // mailMessage.setText(Content); mailMessage.setContent(Content, "text/html;charset=utf-8"); // 发送邮件 Transport.send(mailMessage); return true; } catch (Exception ex) { logger.error("邮件发送异常,[{}]",ex); } return false; } /** * 以HTML格式发送邮件 * * @param ToAddress * @param Subject * @param Content * 待发送的邮件信息 */ public boolean sendHtmlMail(InternetAddress[] ToAddress, String Subject, String Content) { try { // 根据邮件会话属性和密码验证器构造一个发送邮件的session // Session sendMailSession = Session.getDefaultInstance(pro, this); if (sendMailSession == null) { sendMailSession = Session.getDefaultInstance(pro, this); } // 根据session创建一个邮件消息 Message mailMessage = new MimeMessage(sendMailSession); // 创建邮件发送者地址 Address from = new InternetAddress(fromAddress); // 设置邮件消息的发送者 mailMessage.setFrom(from); // 创建邮件的接收者地址,并设置到邮件消息中 // Message.RecipientType.TO属性表示接收者的类型为TO if (ToAddress.length == 1) { mailMessage.setRecipients(Message.RecipientType.TO, ToAddress); } else { mailMessage.setRecipients(Message.RecipientType.BCC, ToAddress); } // 设置邮件消息的主题 mailMessage.setSubject(Subject); // 设置邮件消息发送的时间 mailMessage.setSentDate(new Date()); // MiniMultipart类是一个容器类,包含MimeBodyPart类型的对象 Multipart mainPart = new MimeMultipart(); // 创建一个包含HTML内容的MimeBodyPart BodyPart html = new MimeBodyPart(); // 设置HTML内容 html.setContent(Content, "text/html; charset=utf-8"); mainPart.addBodyPart(html); // 将MiniMultipart对象设置为邮件内容 mailMessage.setContent(mainPart); // 发送邮件 Transport.send(mailMessage); return true; } catch (MessagingException ex) { logger.error("邮件发送异常,[{}]",ex); } return false; } public InternetAddress[] parseAddress(String addr) { StringTokenizer token = new StringTokenizer(addr, ","); InternetAddress[] addrArr = new InternetAddress[token.countTokens()]; int i = 0; while (token.hasMoreTokens()) { try { addrArr[i] = new InternetAddress(token.nextToken().toString()); } catch (AddressException e1) { return null; } i++; } return addrArr; } public static void main(String[] args) { String subject = "系统通知邮件"; String noticeMsg = "这是一封神奇的邮件"; String address = "7184638022@qq.com"; String emailIsSend = "true"; String accountTemp = "123123@qq.com"; String passwordTemp = "123456"; String fromAddressTemp = "123123@qq.com"; String hostTemp = "smtp.exmail.qq.com"; String portTemp = "25"; SendEmailUtil set = new SendEmailUtil(subject , noticeMsg , address , emailIsSend , accountTemp , passwordTemp , fromAddressTemp , hostTemp,portTemp); set.run(); } }
发表评论
-
java读取配置文件信息
2017-01-06 16:18 10231、先引包 import java.io.Buffered ... -
生产随机字符串
2016-12-26 10:05 738根据自己的需求生成随机位数的字符串,如:复杂度为中以上的8位随 ... -
java数字转汉语读法
2015-08-28 10:22 775看到好的东西就想收藏一份,说不定自己哪天就用的上了。 ... -
java正则验证数字、邮箱格式、字符串
2015-08-28 10:00 2268用java代码正则验证数字、邮箱格式、字符串的一些工具类方法 ... -
一个简易的线程池示例
2015-08-07 17:39 473package thread.pool; impor ... -
Thread里面使用@resource失败,对象为null
2015-07-02 15:10 4502spring 在Thread中注入@Resource失败,总为 ... -
用java代码发送邮件 附件
2015-06-29 18:30 4159PS:3种示例的代码都在附件压缩包里,每个包一种示例,独立运行 ... -
页面添加验证码
2015-04-24 18:38 628先上图 我的这种方式由3部分代码组成:页面(html+j ... -
查看class文件是被jdk什么版本编译的
2015-04-24 18:24 1034package image; import java ... -
maven+springMVC+mybatis+junit详细搭建过程
2015-02-28 16:16 801springMVC+mybatis框架搭建 首先我们先要弄清搭 ... -
Base64编码解码
2015-02-27 16:53 546package util; import java. ... -
手机号码相关匹配,判断是否手机号码,属于哪个运营商1移动2联通3电信
2015-02-26 09:05 1735package com.hzlq.yyffserver.uti ... -
完成对json数据的解析
2015-02-26 09:05 511package util; import java.util ... -
数字格式+计算工具类
2015-02-26 09:05 622package util; import java.math ... -
RC4加解密
2015-02-27 15:03 1163/** * * 项目名称: * 类名称:RC4Util ... -
DES加密解密
2015-02-26 09:06 505package util; import it.sauron ... -
字符串和xml互转工具类
2015-02-26 09:05 1091package util; import java.io.B ... -
java date工具类
2015-02-25 14:39 1291package util; import java.text ... -
读取配置文件工具类
2015-02-25 14:35 707package util; import java.util ... -
java String工具类
2015-02-25 14:28 1056package util; import java.text ...
相关推荐
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
- 使用最新技术栈,社区资源丰富,基于Java 21(Core Module Support 17-21)、Spring Boot 3.2。 (Support Virtual Threads/fibre/loom) - 基于注解的动态查询(Specification),可根据需要扩充查询注解。 - 支持...
Java Web开发实例大全(提高卷)筛选、汇集了Java Web开发从基础知识到高级应用各个层面的大量实例及源代码,共有600个左右,每个实例及源代码按实例说明、关键技术、设计过程、详尽注释、秘笈心法的顺序进行了分析...
2、优化订单页面的发短信及邮件的布局; 3、去除订单搜索页面的条件限制,带来更强的订单搜索过滤管理功能; 4、添加根据下单日期搜索订单; 5、调整页面背景显示,调整后更舒适; 6、内容模板添加分类过滤功能; 7...
小型酒吧在线管理系统MinibarCMS是使用Java MVC模式 + Mysql数据库开发的一个简单的文章管理系统,代码简单,数据库也非常mini,特别适合初学者研究与学习! V2版本中对前端进行了重构,一个全新的平面化设计的前端...
万能的 GitHub 上连个能用的 Java 社区系统都找不到,Sym 填补了这个宇宙级空白 做最 NB 的开源社区系统,预计几年以后 82% 的社区都将是 Sym 搭建的 作者技痒,炫技之作,Ruby/Python/Node.js/(特别是)PHP ...
和任何其他产品早期的发行版一样,Android的软件和开发库还会经历很多正常的改进和完善。本书的内容和示例提供了如何使用当前SDK来编写优秀的移动程序所需要的基础知识,同时也保持了快速适应未来版本...
优化用户注册部分代码,判断所有表单,加入回答问题,加入取回密码生成新密码发送邮件 后台设置是否开放新用户注册 后台设置支持的银行 IP记录增加对今天来访IP 本周来访IP 本月来访IP的统计功能 清空资料不删除三天...
Java版本已针对在智能手机上运行进行了优化,并且从4.0开始就被Android框架使用(冰淇淋三明治)。 快速链接 正在报告问题? 要发送拉取请求吗? 见 检查 乐趣! 在与您感兴趣的代码相关目录中查找 。 对于贡献者...
Java版本针对在智能手机上运行进行了优化,并且从4.0开始就被Android框架使用(冰淇淋三明治)。 快速链接 正在报告问题? 要发送拉取请求吗? 见 检查 乐趣! 在与您感兴趣的代码相关目录中查找 。 对于贡献者和...
小型酒吧在线管理系统MinibarCMS是使用Java MVC模式 + Mysql数据库开发的一个简单的文章管理系统,代码简单,数据库也非常mini,特别适合初学者研究与学习! V2版本中对前端进行了重构,一个全新的平面化设计的前端...