- 浏览: 95846 次
- 性别:
- 来自: 湖南
文章分类
最新评论
-
化蝶自在飞:
还是走腾讯应用宝吧.
微信扫二维码下载客户端被挡 -
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 10701、先引包 import java.io.Buffered ... -
生产随机字符串
2016-12-26 10:05 771根据自己的需求生成随机位数的字符串,如:复杂度为中以上的8位随 ... -
java数字转汉语读法
2015-08-28 10:22 823看到好的东西就想收藏一份,说不定自己哪天就用的上了。 ... -
java正则验证数字、邮箱格式、字符串
2015-08-28 10:00 2311用java代码正则验证数字、邮箱格式、字符串的一些工具类方法 ... -
一个简易的线程池示例
2015-08-07 17:39 503package thread.pool; impor ... -
Thread里面使用@resource失败,对象为null
2015-07-02 15:10 4575spring 在Thread中注入@Resource失败,总为 ... -
用java代码发送邮件 附件
2015-06-29 18:30 4215PS:3种示例的代码都在附件压缩包里,每个包一种示例,独立运行 ... -
页面添加验证码
2015-04-24 18:38 672先上图 我的这种方式由3部分代码组成:页面(html+j ... -
查看class文件是被jdk什么版本编译的
2015-04-24 18:24 1081package image; import java ... -
maven+springMVC+mybatis+junit详细搭建过程
2015-02-28 16:16 845springMVC+mybatis框架搭建 首先我们先要弄清搭 ... -
Base64编码解码
2015-02-27 16:53 591package util; import java. ... -
手机号码相关匹配,判断是否手机号码,属于哪个运营商1移动2联通3电信
2015-02-26 09:05 1789package com.hzlq.yyffserver.uti ... -
完成对json数据的解析
2015-02-26 09:05 559package util; import java.util ... -
数字格式+计算工具类
2015-02-26 09:05 675package util; import java.math ... -
RC4加解密
2015-02-27 15:03 1229/** * * 项目名称: * 类名称:RC4Util ... -
DES加密解密
2015-02-26 09:06 542package util; import it.sauron ... -
字符串和xml互转工具类
2015-02-26 09:05 1143package util; import java.io.B ... -
java date工具类
2015-02-25 14:39 1331package util; import java.text ... -
读取配置文件工具类
2015-02-25 14:35 749package util; import java.util ... -
java String工具类
2015-02-25 14:28 1105package util; import java.text ...
相关推荐
1. **邮件发送原理**:JavaMail API是Java用于发送邮件的标准库,它支持SMTP、POP3和IMAP协议。 2. **JavaMail API使用**: - 添加JavaMail依赖,如Maven中的`javax.mail:javax.mail-api`和`...
本教程将详细介绍三种在Java中发送邮件的方法,每种方法都有其适用场景和特点。 ### 1. JavaMail API JavaMail API是Java平台上的标准邮件接口,提供了发送和接收电子邮件的能力。首先,你需要在项目中引入`javax....
以下是一个简单的发送邮件带附件的Java代码示例: ```java ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2010_SP1); ExchangeCredentials credentials = new WebCredentials(...
下面我们将详细讲解如何使用JavaMail API 在Android环境中发送邮件。 **JavaMail API 简介** JavaMail API 提供了一系列接口和类,用于实现邮件服务的各种功能,如创建、发送、读取邮件等。核心接口包括`Session`...
最后,使用Transport.send方法发送邮件。记得在完成邮件发送后关闭连接和资源。 ```java Transport transport = session.getTransport(); transport.connect(); transport.sendMessage(message, message....
4. 使用`Transport`类发送邮件,`Transport.send(Message)`方法将实际发送邮件。 关于PDF解析,PDF(Portable Document Format)是一种用于表示文档的格式,包括文本格式和图像。在Java中解析PDF,通常会用到Apache...
在Java邮件收发系统中,Swing可以用来设计和实现类似于Outlook的用户界面,包括邮件列表、撰写窗口、收件箱、草稿箱、已发送邮件等视图。 为了实现邮件的发送,开发者需要配置JavaMail Session,提供SMTP服务器的...
2. 邮件模板管理:为了方便批量发送邮件,系统通常会提供邮件模板功能。管理员可以创建、编辑和保存各种类型的邮件模板,如新闻通知、活动公告等,这样在实际发送时只需填充个性化内容即可。 3. 发送策略设置:根据...
在JAVA中,我们可以使用`JavaMail API`来实现SMTP协议的功能,创建邮件对象,设置发件人、收件人、主题、正文等信息,并通过SMTP服务器发送邮件。 2. **POP3协议**:Post Office Protocol版本3,是一种用于下载邮件...
5. **发送邮件**:使用Transport.send(Message)方法将邮件发送出去。 6. **处理收件箱**:如果你的应用需要读取或管理邮件,可以列出Folder中的Message,使用Message对象的方法获取邮件内容。 在实际开发中,你可能...
3. **多线程发送**:如果需要批量发送邮件,可以使用多线程来并发处理,提高效率。但需要注意,邮件服务器通常会对同一时间的连接数有限制,避免过于频繁的并发请求。 4. **邮件队列**:对于大量邮件,可以先将邮件...
Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...
JavaMail API是实现这一功能的Java库,它封装了SMTP交互,使得发送邮件变得更加方便。 3. **POP3/IMAP协议**:为了接收邮件,系统需要支持POP3(邮局协议版本3)或IMAP(因特网消息访问协议)。这些协议允许用户从...
要使用Spring Boot发送邮件,首先需要在项目中添加相关的依赖。在`pom.xml`或`build.gradle`文件中,引入`spring-boot-starter-mail`依赖: Maven: ```xml <groupId>org.springframework.boot <artifactId>...
3. **SMTP(简单邮件传输协议)**:SMTP是用于发送邮件的标准网络协议。JavaMail API通过实现SMTP客户端,允许开发者向邮件服务器发送邮件。在配置SMTP服务器地址、端口、用户名和密码后,程序可以成功发送邮件。 4...
这篇博客文章是学习JavaMail API使用的一个很好的资源,通过阅读可以了解到如何配置邮件服务器信息,创建和发送邮件,以及处理附件等复杂操作。 JavaMail API的主要组件包括: 1. Session:它是整个邮件系统的核心...
10. **发送邮件**:使用`Transport.send()`方法发送邮件。 关于“jar”文件的提及,可能是指在项目中引用了第三方库或者自定义的jar包,这些jar包可能包含了处理Excel文件(如Apache POI或JExcelApi)所需的类。...
Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
【1号店项目JAVA代码和素材】是一个针对电商领域的编程实践项目,主要使用Java语言进行开发,涵盖了前端界面设计、后端服务实现以及数据库管理等多个关键环节。此项目旨在帮助学习者深入理解Java编程在实际业务场景...
发送邮件过程中可能会遇到网络问题、服务器认证失败等问题,因此需要适当地捕获和处理`MessagingException`等异常。 9. **用户界面**: 创建一个用户友好的界面,让用户输入收件人、主题、正文,以及选择附件。...