- 浏览: 493635 次
- 性别:
- 来自: 苏州
文章分类
- 全部博客 (211)
- Flex (4)
- Java (22)
- Servlet (4)
- 学习心得 (2)
- 生活琐事 (3)
- PHP (0)
- JavaScript (4)
- Linux (3)
- MYSQL (0)
- SQL SERVER (2)
- ORACLE (5)
- 项目技术积累 (0)
- 设计模式 (0)
- Photoshop (0)
- 网页制作 (8)
- 值得记住 (3)
- Struts1.x (7)
- Hibernate (31)
- IDE (10)
- Spring (5)
- EXT (0)
- Junit (4)
- dom4j (2)
- Log4j (3)
- Java标注 (1)
- WebService (1)
- JSON (2)
- Struts2,x (19)
- Ajax (6)
- 英文 (1)
最新评论
-
aduo_vip:
支持博主,好文!正好需要了
java怎样读写和修改XML文件?? -
默默pig:
楼主,您好。有个语法想问一下:引用你原文中“<resul ...
Struts2中redirect基本的经验之谈 -
Andrew0721:
road_16 写道楼主你好,你说到
redirect:act ...
Struts2中redirect基本的经验之谈 -
zhengkunsheng:
Struts2中redirect基本的经验之谈 -
road_16:
楼主你好,你说到
redirect:action处理完后重定向 ...
Struts2中redirect基本的经验之谈
在开发中经常要给用户自动的发送电子邮件,今天在网上搜了一个发送电子邮件的java程序,写的不错,条理也比较清楚,而且注释比较多,发到我的博客,希望能对大家有帮助,已经调试通过,不过要下一个mail.jar和activation.jar当然要有j2ee.jar 了,别的不多说了,感谢源程序的创作者
package mail;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;
import javax.mail.internet.MimeUtility;
public class Mail {
/** 发件方式 - 普通发送 */
final public static int TO = 0;
/** 发件方式 - 抄送 */
final public static int CC = 1;
/** 发件方式 - 密件抄送 */
final public static int BCC = 2;
/** 邮件相关信息 - SMTP 服务器 */
private String mailSMTPHost = null;
/** 邮件相关信息 - 邮件用户名 */
private String mailUser = null;
/** 邮件相关信息 - 密码 */
private String mailPassword = null;
/** 邮件相关信息 - 发件人邮件地址 */
private String mailFromAddress = null;
/** 邮件相关信息 - 邮件主题 */
private String mailSubject = "";
/** 邮件相关信息 - 邮件发送地址 */
private Address[] mailTOAddress = null;
/** 邮件相关信息 - 邮件抄送地址 */
private Address[] mailCCAddress = null;
/** 邮件相关信息 - 邮件密件抄送地址 */
private Address[] mailBCCAddress = null;
/** 邮件相关信息 - 邮件正文(复合结构) */
private MimeMultipart mailBody = null;
public Mail() {
mailBody = new MimeMultipart();
}
/**
* 设置 SMTP 服务器
* @param strSMTPHost 邮件服务器名称或 IP
* @param strUser 邮件用户名
* @param strPassword 密码
*/
public void setSMTPHost(String strSMTPHost, String strUser,
String strPassword) {
this.mailSMTPHost = strSMTPHost;
this.mailUser = strUser;
this.mailPassword = strPassword;
}
/**
* 设置邮件发送地址
* @param strFromAddress 邮件发送地址
*/
public void setFromAddress(String strFromAddress) {
this.mailFromAddress = strFromAddress;
}
/**
* 设置邮件目的地址
* @param strAddress 邮件目的地址列表, 不同的地址可用;号分隔
* @param iAddressType 邮件发送方式 (TO 0, CC 1, BCC 2) 常量已在本类定义
* @throws AddressException
*/
public void setAddress(String strAddress, int iAddressType) throws
AddressException {
switch (iAddressType) {
case Mail.TO: {
ArrayList alAddress = StringHelper.split(strAddress, ';');
mailTOAddress = new Address[alAddress.size()];
for (int i = 0; i < alAddress.size(); i++) {
mailTOAddress[i] = new InternetAddress( (String) alAddress.get(i));
}
break;
}
case Mail.CC: {
ArrayList alAddress = StringHelper.split(strAddress, ';');
mailCCAddress = new Address[alAddress.size()];
for (int i = 0; i < alAddress.size(); i++) {
mailCCAddress[i] = new InternetAddress( (String) alAddress.get(i));
}
break;
}
case Mail.BCC: {
ArrayList alAddress = StringHelper.split(strAddress, ';');
mailBCCAddress = new Address[alAddress.size()];
for (int i = 0; i < alAddress.size(); i++) {
mailBCCAddress[i] = new InternetAddress( (String) alAddress.get(i));
}
break;
}
}
}
/**
* 设置邮件主题
* @param strSubject 邮件主题
*/
public void setSubject(String strSubject) {
this.mailSubject = strSubject;
}
/**
* 设置邮件文本正文
* @param strTextBody 邮件文本正文
* @throws MessagingException
*/
public void setTextBody(String strTextBody) throws MessagingException {
MimeBodyPart mimebodypart = new MimeBodyPart();
mimebodypart.setText(strTextBody, "GBK");
mailBody.addBodyPart(mimebodypart);
}
/**
* 设置邮件超文本正文
* @param strHtmlBody 邮件超文本正文
* @throws MessagingException
*/
public void setHtmlBody(String strHtmlBody) throws MessagingException {
MimeBodyPart mimebodypart = new MimeBodyPart();
mimebodypart.setDataHandler(new DataHandler(strHtmlBody, "text/html;charset=GBK"));
mailBody.addBodyPart(mimebodypart);
}
/**
* 设置邮件正文外部链接 URL, 信体中将包含链接所指向的内容
* @param strURLAttachment 邮件正文外部链接 URL
* @throws MessagingException
* @throws MalformedURLException
*/
public void setURLAttachment(String strURLAttachment) throws
MessagingException, MalformedURLException {
MimeBodyPart mimebodypart = new MimeBodyPart();
mimebodypart.setDataHandler(new DataHandler(new URL(strURLAttachment)));
mailBody.addBodyPart(mimebodypart);
}
/**
* 设置邮件附件
* @param strFileAttachment 文件的全路径
* @throws MessagingException
* @throws UnsupportedEncodingException
*/
public void setFileAttachment(String strFileAttachment) throws
MessagingException, UnsupportedEncodingException {
File path = new File(strFileAttachment);
if (!path.exists() || path.isDirectory()) {
return;
}
String strFileName = path.getName();
MimeBodyPart mimebodypart = new MimeBodyPart();
mimebodypart.setDataHandler(new DataHandler(new FileDataSource(
strFileAttachment)));
// modified by zord @ 2003/6/16 to support Chinese File Name
// mimebodypart.setFileName(strFileName);
mimebodypart.setFileName(MimeUtility.encodeText(strFileName));
// end of modify
mailBody.addBodyPart(mimebodypart);
}
/**
* 邮件发送(一次发送多个地址, 优点速度快, 但是有非法邮件地址时将中断发送操作)
* @throws MessagingException
*/
public void sendBatch() throws MessagingException {
Properties properties = new Properties();
properties.put("mail.smtp.host", this.mailSMTPHost);
Session session = Session.getInstance(properties, null);
MimeMessage mimemessage = new MimeMessage(session);
mimemessage.setFrom(new InternetAddress(this.mailFromAddress));
if (mailTOAddress != null) {
mimemessage.addRecipients(javax.mail.Message.RecipientType.TO,
this.mailTOAddress);
}
if (mailCCAddress != null) {
mimemessage.addRecipients(javax.mail.Message.RecipientType.CC,
this.mailCCAddress);
}
if (mailBCCAddress != null) {
mimemessage.addRecipients(javax.mail.Message.RecipientType.BCC,
this.mailBCCAddress);
}
mimemessage.setSubject(this.mailSubject);
mimemessage.setContent(this.mailBody);
mimemessage.setSentDate(new Date());
Transport transport = session.getTransport("smtp");
transport.connect(this.mailSMTPHost, this.mailUser, this.mailPassword);
Transport.send(mimemessage);
System.out.println("已向下列邮箱发送了邮件");
if (mailTOAddress != null) {
for (int i = 0; i < mailTOAddress.length; i++) {
System.out.println(mailTOAddress[i]);
}
}
if (mailCCAddress != null) {
for (int i = 0; i < mailTOAddress.length; i++) {
System.out.println(mailCCAddress[i]);
}
}
if (mailBCCAddress != null) {
for (int i = 0; i < mailTOAddress.length; i++) {
System.out.println(mailBCCAddress[i]);
}
}
}
static public void main(String str[]) throws MessagingException
{
Mail mail=new Mail();
mail.setAddress("jgls@21cn.com",Mail.TO);
mail.setFromAddress("jgls@21cn.com");
mail.setSMTPHost("mail.21cn.com","","");
mail.setSubject("测试一下");
mail.setHtmlBody("");
mail.sendBatch();
}
}
发表评论
-
浅析Java抽象类和接口的比较
2012-10-23 14:26 1108抽象类(abstract class) ... -
java序列化(Serializable)
2009-10-15 00:05 1493序列化机制只保存对象的类型信息,属性的类型信息和属性值,和方法 ... -
Java Serializable(序列化)的理解和总结
2009-10-13 09:05 11181、序列化是干什么的? 简单说就是为了保存在内存中 ... -
java怎样读写和修改XML文件??
2009-10-10 16:37 15051xml: <?xml version="1. ... -
Java时间格式转换大全
2009-10-10 13:39 1471import java.text.*; import jav ... -
JAVA提高教程(6)-认识List列表
2009-10-10 00:34 1331列表是很常用的数据结构,感觉比Map和Set用的频率要高一些吧 ... -
Java 中 Vector、ArrayList、List 使用深入剖析
2009-10-10 00:29 802线性表,链表,哈希表 ... -
JAVA LIST 遍历
2009-10-09 17:02 2741对List的遍历有三种方式 List< ... -
读取Properties文件的几种方法
2009-09-08 14:08 9281. 使用java.util.Properties类的load ... -
java正则表达式
2009-09-08 08:52 1127Java正则表达式学习: ... -
如何打包jar
2009-09-07 14:32 1650jar cvf my.jar helloword.class将 ... -
(JAVA)IP地址相关的工具类 IPUtil
2009-09-07 11:21 3234import java.net.*; /** * IP ... -
java反射应用对BEAN的操作,写通用类、标签时有用
2009-09-07 11:17 1546import java.lang.reflect.Field; ... -
Java字符串通用类
2009-09-07 11:15 1977import java.util.regex.Matcher; ... -
一个关于日期,数字,字符格式化的常用工具类
2009-09-07 11:13 1828import java.text.SimpleDateForm ... -
Java 通用异常处理类
2009-09-07 10:32 1391/** * (#)ThrowableManager.jav ... -
优化的 JAVA 数据库连接通用类
2009-09-07 10:14 3847之前我曾经放出过一个通用的数据库连接DAO。但是其也有一定的局 ... -
验证码的java通用类
2009-09-07 10:09 991在应用程序中为防止系 ... -
高频词汇提取的Java实现
2009-09-07 08:53 1473面对浩瀚的信息海洋,找到想要的资源有时真的是不容易。在大量文字 ... -
Java多线程初学者指南:为什么要进行数据同步
2009-09-07 08:34 1029Java中的变量分为两类:局部变量和类变量。局部变量是指在方法 ...
相关推荐
本教程将深入讲解如何使用Java实现邮件发送功能,并提供相关的源码和jar包。 1. **JavaMail API**: JavaMail API 是Java平台上用于处理电子邮件的主要库,它提供了一系列的接口和类,使得开发者能够方便地创建、...
JavaMail是Java编程语言中用于处理电子邮件的API,它提供了丰富的功能,包括发送、接收、管理邮件等。本文将深入探讨如何使用JavaMail API在Java应用程序中实现发送邮件的功能,同时也会涉及验证码验证以及网页版...
JavaMail API是Java中用于处理电子邮件的标准库,包括了发送邮件、接收邮件等功能。要发送普通邮件,你需要设置SMTP服务器地址、端口、用户名和密码,然后创建`Message`对象并设置发件人、收件人、主题和正文,最后...
本教程将深入探讨如何使用Java实现这一功能。Java提供了多种库来处理邮件发送,其中最常用的便是JavaMail API。 JavaMail API是Java平台上用于发送和接收电子邮件的标准API,它提供了丰富的接口和类来处理邮件协议...
Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...
在IT行业中,使用编程语言发送电子邮件是一项常见的任务,特别是在自动化脚本或系统集成中。Java作为广泛应用的编程语言,提供了多种方法来发送邮件,包括通过Outlook和Notes客户端。在这个场景下,我们将深入探讨...
Java 实现电子邮箱功能是一个常见的编程任务,尤其在企业级应用开发中十分常见。这个项目主要涉及了JavaMail API和Spring框架(SSH架构中的S),为用户提供邮件的发送、接收和管理功能。以下是对这些知识点的详细...
下面将详细讲解如何使用Java实现这一功能。 1. **SMTP服务和JavaMail API** SMTP是互联网标准,用于发送电子邮件。163邮箱提供了SMTP服务器地址,开发者可以利用JavaMail API与这个服务器通信。JavaMail API是一个...
Java邮件API,通常被称为JavaMail,是Java开发者用于发送和接收电子邮件的标准库。JMail是一个基于JavaMail API的工具,它简化了邮件的发送过程,允许开发者通过编程方式轻松实现邮件发放功能。在本篇文章中,我们将...
本教程将详细介绍如何使用Java实现邮件发送功能,同时提供了一个Jar包和demo源码供参考。 首先,我们需要理解JavaMail API,这是一个Java平台上的邮件处理库,它提供了发送和接收电子邮件的能力。JavaMail API 包含...
在提供的`发送电子邮件.java`和`发送电子邮件的类`中,应该包含了这些步骤的具体实现。通过阅读源代码,你可以更深入地理解每个部分的功能和作用。在实际应用中,可能还需要处理异常、错误重试、SSL/TLS加密等问题,...
### Java实现发送邮件知识点详解 #### 一、引言 电子邮件是互联网中最为常见的通信方式之一,被广泛应用于用户激活、密码重置、营销推广等多个场景。为了满足自动化的需求,通常采用程序化的方式进行邮件的发送。...
JavaMail API是Java平台上的一个标准库,用于处理电子邮件。本篇将详细介绍如何利用JavaMail API来实现发送邮件的功能,并探讨相关的核心概念。 首先,`javamail`是一个关键的组件,它包含了实现SMTP(简单邮件传输...
这个"java实现发送邮件jar文件"是JavaMail的一个实现,封装了SMTP(简单邮件传输协议)和其他相关协议,使得开发者能够轻松地集成邮件功能到他们的项目中。 在Java中实现邮件发送,首先需要引入JavaMail的相关依赖...
JavaMail API是Java平台上的标准库,用于处理电子邮件的收发。在这个过程中,我们将涵盖以下几个关键知识点: 1. **JavaMail API**: JavaMail API是Java平台的核心组件之一,提供了处理SMTP(简单邮件传输协议)、...
而Java Socket库则提供了实现SMTP客户端所需的基本功能,允许我们创建连接到SMTP服务器的套接字,并通过这个连接发送邮件。以下是一些关键知识点: 1. **Java Socket类**:Java的`java.net.Socket`类是网络通信的...
以上就是Java使用JavaMail API实现发送邮件的基本步骤和扩展功能。通过熟练掌握这些知识点,你可以构建出适应各种需求的邮件发送系统。在实际开发中,还应考虑异常处理、错误重试以及性能优化等细节,确保邮件发送的...
在Java编程语言中,发送电子邮件是一项常见的任务,尤其在自动化通知、系统消息传递或客户服务场景中。本资源提供了关于使用Java发送电子邮件的源代码学习资料,让我们深入探讨这个主题。 首先,我们需要理解...