- 浏览: 1505433 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
J2ee5自带的activation,mail的jar包会与javamail的jar产生冲突,
解决方法是找到myeclipse里面的javaee.jar,打开这个Jar包找到mail与activation文件夹目录将其删除,刷新工程后即可。
javaee.jar在我本机的路径如下:
D:\eclipse\myeclipse\eclipse\plugins\com.genuitec.eclipse.j2eedt.core_6.0.1.zmyeclipse601200710\data\libraryset\EE_5
【javamail实现代码】
Mail类:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->package com.wintv.common;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class Mail {
private MimeMessage mimeMsg; //邮件对象
private Session session; //发送邮件的Session会话
private Properties props;//邮件发送时的一些配置信息的一个属性对象
private String sendUserName; //发件人的用户名
private String sendUserPass; //发件人密码
private Multipart mp;//附件添加的组件
private List files = new LinkedList();//存放附件文件
public Mail(String smtp) {
sendUserName = "";
sendUserPass = "";
setSmtpHost(smtp);// 设置邮件服务器
createMimeMessage(); // 创建邮件
}
public void setSmtpHost(String hostName) {
if (props == null)
props = System.getProperties();
props.put("mail.smtp.host", hostName);
}
public boolean createMimeMessage() {
try {
// 用props对象来创建并初始化session对象
session = Session.getDefaultInstance(props, null);
} catch (Exception e) {
System.err.println("获取邮件会话对象时发生错误!" + e);
return false;
}
try {
mimeMsg = new MimeMessage(session); // 用session对象来创建并初始化邮件对象
mp = new MimeMultipart();// 生成附件组件的实例
} catch (Exception e) {
return false;
}
return true;
}
/**
* 设置SMTP的身份认证
*/
public void setNeedAuth(boolean need) {
if (props == null)
props = System.getProperties();
if (need)
props.put("mail.smtp.auth", "true");
else
props.put("mail.smtp.auth", "false");
}
/**
* 进行用户身份验证时,设置用户名和密码
*/
public void setNamePass(String name, String pass) {
sendUserName = name;
sendUserPass = pass;
}
/**
* 设置邮件主题
* @param mailSubject
* @return
*/
public boolean setSubject(String mailSubject) {
try {
mimeMsg.setSubject(mailSubject);
} catch (Exception e) {
return false;
}
return true;
}
/**
* 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8
* @param mailBody
* @return
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>"+ mailBody, "text/html;charset=UTF-8");
// 在组件上添加邮件文本
mp.addBodyPart(bp);
//下面这段代码是给html里面加上图片的
// FileDataSource fds = new FileDataSource("d:/2dy.jpg");
// MimeBodyPart mbp2 = new MimeBodyPart();
// mbp2.setFileName(fds.getName());
// mbp2.setText("This is a beautiful car !");
// mbp2.setDataHandler(new DataHandler(fds));
// mbp2.setHeader("Content-ID",fds.getName());
// mp.addBodyPart(mbp2);
} catch (Exception e) {
System.err.println("设置邮件正文时发生错误!" + e);
return false;
}
return true;
}
/**
* 增加发送附件
* @param filename
* 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常
* @return
*/
public boolean addFileAffix(String filename) {
try {
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName()); // 发送的附件前加上一个用户名的前缀
mp.addBodyPart(bp);// 添加附件
files.add(fileds);
} catch (Exception e) {
System.err.println("增加邮件附件:" + filename + "发生错误!" + e);
return false;
}
return true;
}
public boolean delFileAffix(){
try {
FileDataSource fileds = null;
for(Iterator it = files.iterator() ;it.hasNext();) {
fileds = (FileDataSource)it.next();
if(fileds != null && fileds.getFile() != null){
fileds.getFile().delete();
}
}
}catch (Exception e) {
return false;
}
return true;
}
/**
* 设置发件人地址
* @param from
* 发件人地址
* @return
*/
public boolean setFrom(String from) {
try {
mimeMsg.setFrom(new InternetAddress(from));
} catch (Exception e) {
return false;
}
return true;
}
/**
* 设置收件人地址
* @param to收件人的地址
* @return
*/
public boolean setTo(String to) {
if (to == null)
return false;
try {
mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
} catch (Exception e) {
return false;
}
return true;
}
/**
* 发送附件
* @param copyto
* @return
*/
public boolean setCopyTo(String copyto) {
if (copyto == null)
return false;
try {
mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,InternetAddress.parse(copyto));
} catch (Exception e) {
return false;
}
return true;
}
/**
* 发送邮件
* @return
*/
public boolean sendEmail() {
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
System.out.println("正在发送邮件.");
Session mailSession = Session.getInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
// 连接邮件服务器并进行身份验证
transport.connect((String) props.get("mail.smtp.host"), sendUserName,sendUserPass);
// 发送邮件
transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
System.out.println("发送邮件成功!");
transport.close();
} catch (Exception e) {
System.err.println("邮件发送失败!" + e.getMessage());
return false;
}
return true;
}
}
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
public class Mail {
private MimeMessage mimeMsg; //邮件对象
private Session session; //发送邮件的Session会话
private Properties props;//邮件发送时的一些配置信息的一个属性对象
private String sendUserName; //发件人的用户名
private String sendUserPass; //发件人密码
private Multipart mp;//附件添加的组件
private List files = new LinkedList();//存放附件文件
public Mail(String smtp) {
sendUserName = "";
sendUserPass = "";
setSmtpHost(smtp);// 设置邮件服务器
createMimeMessage(); // 创建邮件
}
public void setSmtpHost(String hostName) {
if (props == null)
props = System.getProperties();
props.put("mail.smtp.host", hostName);
}
public boolean createMimeMessage() {
try {
// 用props对象来创建并初始化session对象
session = Session.getDefaultInstance(props, null);
} catch (Exception e) {
System.err.println("获取邮件会话对象时发生错误!" + e);
return false;
}
try {
mimeMsg = new MimeMessage(session); // 用session对象来创建并初始化邮件对象
mp = new MimeMultipart();// 生成附件组件的实例
} catch (Exception e) {
return false;
}
return true;
}
/**
* 设置SMTP的身份认证
*/
public void setNeedAuth(boolean need) {
if (props == null)
props = System.getProperties();
if (need)
props.put("mail.smtp.auth", "true");
else
props.put("mail.smtp.auth", "false");
}
/**
* 进行用户身份验证时,设置用户名和密码
*/
public void setNamePass(String name, String pass) {
sendUserName = name;
sendUserPass = pass;
}
/**
* 设置邮件主题
* @param mailSubject
* @return
*/
public boolean setSubject(String mailSubject) {
try {
mimeMsg.setSubject(mailSubject);
} catch (Exception e) {
return false;
}
return true;
}
/**
* 设置邮件内容,并设置其为文本格式或HTML文件格式,编码方式为UTF-8
* @param mailBody
* @return
*/
public boolean setBody(String mailBody) {
try {
BodyPart bp = new MimeBodyPart();
bp.setContent("<meta http-equiv=Content-Type content=text/html; charset=UTF-8>"+ mailBody, "text/html;charset=UTF-8");
// 在组件上添加邮件文本
mp.addBodyPart(bp);
//下面这段代码是给html里面加上图片的
// FileDataSource fds = new FileDataSource("d:/2dy.jpg");
// MimeBodyPart mbp2 = new MimeBodyPart();
// mbp2.setFileName(fds.getName());
// mbp2.setText("This is a beautiful car !");
// mbp2.setDataHandler(new DataHandler(fds));
// mbp2.setHeader("Content-ID",fds.getName());
// mp.addBodyPart(mbp2);
} catch (Exception e) {
System.err.println("设置邮件正文时发生错误!" + e);
return false;
}
return true;
}
/**
* 增加发送附件
* @param filename
* 邮件附件的地址,只能是本机地址而不能是网络地址,否则抛出异常
* @return
*/
public boolean addFileAffix(String filename) {
try {
BodyPart bp = new MimeBodyPart();
FileDataSource fileds = new FileDataSource(filename);
bp.setDataHandler(new DataHandler(fileds));
bp.setFileName(fileds.getName()); // 发送的附件前加上一个用户名的前缀
mp.addBodyPart(bp);// 添加附件
files.add(fileds);
} catch (Exception e) {
System.err.println("增加邮件附件:" + filename + "发生错误!" + e);
return false;
}
return true;
}
public boolean delFileAffix(){
try {
FileDataSource fileds = null;
for(Iterator it = files.iterator() ;it.hasNext();) {
fileds = (FileDataSource)it.next();
if(fileds != null && fileds.getFile() != null){
fileds.getFile().delete();
}
}
}catch (Exception e) {
return false;
}
return true;
}
/**
* 设置发件人地址
* @param from
* 发件人地址
* @return
*/
public boolean setFrom(String from) {
try {
mimeMsg.setFrom(new InternetAddress(from));
} catch (Exception e) {
return false;
}
return true;
}
/**
* 设置收件人地址
* @param to收件人的地址
* @return
*/
public boolean setTo(String to) {
if (to == null)
return false;
try {
mimeMsg.setRecipients(Message.RecipientType.TO,InternetAddress.parse(to));
} catch (Exception e) {
return false;
}
return true;
}
/**
* 发送附件
* @param copyto
* @return
*/
public boolean setCopyTo(String copyto) {
if (copyto == null)
return false;
try {
mimeMsg.setRecipients(javax.mail.Message.RecipientType.CC,InternetAddress.parse(copyto));
} catch (Exception e) {
return false;
}
return true;
}
/**
* 发送邮件
* @return
*/
public boolean sendEmail() {
try {
mimeMsg.setContent(mp);
mimeMsg.saveChanges();
System.out.println("正在发送邮件.");
Session mailSession = Session.getInstance(props, null);
Transport transport = mailSession.getTransport("smtp");
// 连接邮件服务器并进行身份验证
transport.connect((String) props.get("mail.smtp.host"), sendUserName,sendUserPass);
// 发送邮件
transport.sendMessage(mimeMsg, mimeMsg.getRecipients(Message.RecipientType.TO));
System.out.println("发送邮件成功!");
transport.close();
} catch (Exception e) {
System.err.println("邮件发送失败!" + e.getMessage());
return false;
}
return true;
}
}
Test:
<!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />-->package test;
import com.wintv.common.Mail;
public class Test {
public void send(){
String Subject = "找回密码";
String bodyContent = "密码:xxx";
String hostName = "mail.wintv.cn";
String fromAddress = "yht@wintv.cn";
String fromAPass = "arix04";
String toAddress = "yht207@126.com";
try{
Mail emailHandle = new Mail(hostName);
emailHandle.setFrom(fromAddress);
emailHandle.setNeedAuth(true);
emailHandle.setSubject(Subject);
emailHandle.setBody(bodyContent);
emailHandle.setTo(toAddress);
emailHandle.setFrom(fromAddress);
// emailHandle.addFileAffix("d:/2dy.jpg");// 附件文件路径
// emailHandle.addFileAffix("d:/2dy.jpg");// 附件文件路径
emailHandle.setNamePass(fromAddress,fromAPass);
emailHandle.sendEmail();
//emailHandle.delFileAffix();//删除发送附件信息
}catch(Exception ex){
ex.printStackTrace();
}
}
public static void main(String []args){
Test t = new Test();
t.send();
}
}
import com.wintv.common.Mail;
public class Test {
public void send(){
String Subject = "找回密码";
String bodyContent = "密码:xxx";
String hostName = "mail.wintv.cn";
String fromAddress = "yht@wintv.cn";
String fromAPass = "arix04";
String toAddress = "yht207@126.com";
try{
Mail emailHandle = new Mail(hostName);
emailHandle.setFrom(fromAddress);
emailHandle.setNeedAuth(true);
emailHandle.setSubject(Subject);
emailHandle.setBody(bodyContent);
emailHandle.setTo(toAddress);
emailHandle.setFrom(fromAddress);
// emailHandle.addFileAffix("d:/2dy.jpg");// 附件文件路径
// emailHandle.addFileAffix("d:/2dy.jpg");// 附件文件路径
emailHandle.setNamePass(fromAddress,fromAPass);
emailHandle.sendEmail();
//emailHandle.delFileAffix();//删除发送附件信息
}catch(Exception ex){
ex.printStackTrace();
}
}
public static void main(String []args){
Test t = new Test();
t.send();
}
}
相关推荐
j2ee javamail对javamail进行了详细的介绍
8. **JavaMail**和**JMS**:J2EE5提供了对邮件和消息队列的API,如JavaMail API用于发送和接收电子邮件,而Java Message Service (JMS) API则用于实现企业级的消息传递。 在压缩包的"src"目录下,很可能是包含了...
《J2EE5_ API_中文版》是一个针对Java企业级应用开发的重要参考资料,它提供了J2EE5版本的API接口详细中文解释,对于开发者来说是极具价值的学习资源。J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出...
JavaMail API是用于处理电子邮件的应用编程接口,它在J2EE 5中得到了加强,提供了更多处理邮件服务器交互的功能。 总的来说,J2EE 5 API是Java企业级开发的重要里程碑,它引入的诸多新特性和改进,大大降低了开发...
在 J2EE 网络编程中,JavaMail 是一个不可或缺的工具,尤其对于那些需要进行邮件交互的应用来说。本章节将深入探讨 JavaMail 的基础、安装配置以及核心类的使用。 ### 12.1 JavaMail 基础 #### 12.1.1 邮件协议 ...
5. **JavaMail**:J2EE 5中包含了处理邮件服务的JavaMail API,允许应用发送和接收电子邮件。 6. **Java Message Service (JMS)**:JMS是Java平台的消息中间件API,用于在分布式环境中进行异步通信。它在J2EE 5中...
5. **JavaMail API** 和 **Java Message Service (JMS)**:这两者用于异步通信和消息传递,JMS允许应用程序创建、发送、接收和读取消息,而JavaMail API则提供了邮件处理功能。 6. **Java Servlet容器**:如Tomcat...
第十一章 使用 WebLogic Server JavaMail 连接 Internet 邮件 第十二章 管理 WebLogic Server 8.1 第十三章 WebLogic Server 8.1 应用程序安全 第十四章 设计产品部署 第十五章 Web 拍卖设计目标 第十六章 WebLogic ...
the JavaMail API provides a platform-independent and protocol-independent framework to build mail and messaging applications. The JavaMail API is available as an optional package for use with Java SE ...
《J2EE应用与BEA.WebLogic.Server第2版》是由美河提供的关于Java企业级应用开发和BEA WebLogic Server服务器使用的专著。这本书详细介绍了如何利用J2EE(Java 2 Platform, Enterprise Edition)技术构建分布式、多层...
JavaMail 是一个强大的开源库,用于在Java应用程序中实现电子邮件的发送和接收功能。它提供了丰富的API,使得开发者能够方便地处理SMTP、POP3、IMAP等邮件协议,支持多种邮件格式,包括文本、HTML以及带有附件的邮件...
在J2EE 5 API中,以下几个关键的技术和接口值得我们深入了解: 1. **JavaServer Pages (JSP)**:JSP是Java Web开发中的视图层技术,允许开发者在HTML或XML文档中嵌入Java代码,从而动态生成网页内容。J2EE 5对JSP...
文件中的内容表明JavaMail API版本1.5在2013年5月31日发布,并且这个版本为最终发布版。Oracle公司拥有版权,并在2013年授予了与JavaMail API相关的权限和许可。许可证的详细信息定义了开发者可以和不可以进行的操作...
J2EE 5中,JSP 2.1版本引入了表达式语言(EL)和自定义标签库,增强了与JavaBeans组件的交互。 2. **Servlet**:Servlet是Java编程语言中的一个接口,用于扩展服务器的功能。在J2EE 5中,Servlet 2.5规范改进了生命...
**J2EE 5.0 帮助手册:核心概念与技术详解** J2EE(Java 2 Platform, Enterprise Edition)是Oracle公司推出的用于构建企业级分布式应用程序的平台,而J2EE 5.0是其发展的一个重要版本。这个版本引入了许多改进和新...
此外,J2EE还支持JavaMail API,使得程序能够发送和接收电子邮件,以及Java Messaging Service (JMS),用于实现异步通信。 在实际应用中,Servlet通常与JSP、Filter和Listener等组件一起使用,形成Web应用的基础...
JPA 1.0引入了ORM(Object-Relational Mapping)机制,使得对象与关系数据库之间的映射更为直观,简化了数据访问层的开发。 4. **Enterprise JavaBeans (EJB) 3.0**: EJB 3.0是J2EE 5.0中的关键组件,它极大地简化...
2. **J2EE组件与JAR** - **Enterprise JavaBeans (EJB)**:EJB是J2EE的核心组件,用于构建可复用的业务逻辑。EJB相关的jar文件包括`ejb.jar`,它包含了EJB组件的接口和实现类,以及部署描述符(`ejb-jar.xml`)。...
J2EE包含JavaMail API,用于发送和接收电子邮件。而Java Message Service(JMS)则提供了一种标准接口来处理消息队列,实现异步通信。 11. **Web服务** J2EE支持SOAP(Simple Object Access Protocol)和RESTful...
J2EE 1.4包含了JavaMail API,用于发送和接收电子邮件。这个API允许开发者创建复杂的邮件系统,支持SMTP、POP3和IMAP协议。 ### 7. **Java Messaging Service (JMS)** JMS是Java平台上的消息中间件标准,用于在...