`
xumingrencai
  • 浏览: 1184296 次
文章分类
社区版块
存档分类
最新评论

java实现发送电子邮件功能

 
阅读更多

在开发中经常要给用户自动的发送电子邮件,今天在网上搜了一个发送电子邮件的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实现电子邮箱功能项目 代码

    用java实现电子邮箱功能,邮件的接收发送,管理功能。 带界面,SSH项目,适合初学者和一定水平人事参考。

    Java 程序 Exchange协议发送,收,查询邮件

    java通过exchange协议发送和接收邮件功能。实现了发送邮件、接收未读邮件和已读邮件的功能。采用微软官方提供的EWSJavaAPI_1.2.jar包完成此项功

    基于Java的邮件系统的设计与实现-初稿.doc

    基于Java的邮件系统的设计与...5.8 用户发送电子邮件工作流程 31 5.9 用户查看电子邮件工作流程 32 6 系统测试 35 6.1 单元测试 35 6.2 集成测试 36 6.3 系统测试 38 7 总结与展望 40 附 录 41 参考文献 46 致 谢 47

    Java实现邮件客户端源代码

    大家好,前几天我刚发过Java邮件客户端的JAR包,现在把源程序给补上,功能我就不多说了,只是给提醒下方法:由于我单独调用了两个JAR包(放在JavaMail API文件夹下的),所以大家首先要在项目里点——&gt; 库 ——&gt;右键...

    创建一个Java电子邮件客户端

    在这篇博客中,我们将使用Java语言来设计和实现一个基本的电子邮件客户端应用,具有发送和接收电子邮件的功能。 开发环境 在开始之前,确保你的开发环境中安装了以下工具和技术: Java Development Kit (JDK): ...

    利用Java的Struts框架实现电子邮件发送功能

    主要介绍了利用Java的Struts框架实现电子邮件发送功能,Struts框架是Java的SSH三大web开发框架之一,需要的朋友可以参考下

    毕业设计 - 基于JAVA的JSP电子政务网系统设计与实现

    领导信箱模块:实现发送邮件信息功能; 地区概况模块:实现地区概况查看功能; 动态信息模块:实现公告公示功能; 政务信息动态模块:实现政务信息动态查看功能; 法律法规模块:实现法律法规查看功能; ...

    Java电子政务网系统的设计与实现.zip

    领导信箱模块:实现发送邮件信息功能; 地区概况模块:实现地区概况查看功能; 动态信息模块:实现公告公示功能; 政务信息动态模块:实现政务信息动态查看功能; 法律法规模块:实现法律法规查看功能; 网上办事...

    Java编写的批量发送实名邮件程序,特别适合发送实名邀请函

    特别是办公室工作人员需要发送实名制的邀请函,如果每发送一个电子邮件,都要打开附件(如果 附件是word的话,打开的速度又很慢,还容易死机)添加邀请人的姓名,并且还要在邮件的正文里 面再复制一次邀请人的...

    基于Java的电子邮箱接收系统的设计与实现【附源码】

    本设计主要实现集人性化、高效率、便捷等优点于一身的电子邮件接收系统,完成用户管理、邮件发送、发件箱、收件箱、通知公告管理、系统管理等功能模块。系统通过浏览器与服务器进行通信,实现数据的交互与变更。本...

    基于Java mail的邮件收发系统的毕业设计,该技术提供了一套用于发送、接收电子邮件的API,可以方便地实现邮件的发送和接收

    系统的设计采用了Javamail技术,该技术提供了一套用于发送、接收电子邮件的API,可以方便地实现邮件的发送和接收。同时,系统还采用了MySQL作为数据库,存储用户的邮件信息以及系统的配置信息。 在系统的实现过程中...

    java源码包---java 源码 大量 实例

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器地址  ...

    基于Java的京东电商系统的设计与实现.docx

    摘 要:近十多年来,因为移动互联网发展迅猛,除了通常的查阅网页,搜索数据和发送电子邮件外,大多数国内网民还将采用以下传统功能,如购物,电信,旅游和娱乐我逐渐习惯了互联网。包括使用在线购物在内的新服务...

    基于Java+SqlServer实现的电子政务网(源码+数据库sql+论文+视频齐全)

    领导信箱模块:实现发送邮件信息功能; 地区概况模块:实现地区概况查看功能; 动态信息模块:实现公告公示功能; 政务信息动态模块:实现政务信息动态查看功能; 法律法规模块:实现法律法规查看功能; ...

    JAVA、JSP电子政务网

    领导信箱模块:实现发送邮件信息功能; 地区概况模块:实现地区概况查看功能; 动态信息模块:实现公告公示功能; 政务信息动态模块:实现政务信息动态查看功能; 法律法规模块:实现法律法规查看功能; ...

    基于JavaMail的Java实现简单邮件发送功能

    主要为大家详细介绍了基于JavaMail的Java实现简单邮件发送功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

    java源码包2

     Java实现的FTP连接与数据浏览程序,实现实例化可操作的窗口。  部分源代码摘录:  ftpClient = new FtpClient(); //实例化FtpClient对象  String serverAddr=jtfServer.getText(); //得到服务器...

    java开源包4

    jSIP这个Java包目标是用Java实现SIP(SIP:Session Initiation Protocol)协议及SIP协议的其它扩展部 分。 Java表达式语法解析库 parboiled parboiled 是一个纯Java库提供了一种轻量级,易于使用,功能强大和优雅的PEG...

    关于JAVA-JSP电子政务网.zip

    领导信箱模块:实现发送邮件信息功能; 地区概况模块:实现地区概况查看功能; 动态信息模块:实现公告公示功能; 政务信息动态模块:实现政务信息动态查看功能; 法律法规模块:实现法律法规查看功能; ...

    毕业设计,电子政务网系统,Java完整源代码,内含毕业论文的设计与实现、毕业答辩PPT、SqlServer数据库以及项目辅导视频

    领导信箱模块:实现发送邮件信息功能; 地区概况模块:实现地区概况查看功能; 动态信息模块:实现公告公示功能; 政务信息动态模块:实现政务信息动态查看功能; 法律法规模块:实现法律法规查看功能; ...

Global site tag (gtag.js) - Google Analytics