package com.hexun.blog.dongliwei.common.mail;
import java.io.UnsupportedEncodingException;
import java.sql.Connection;
import java.util.ArrayList;
import java.util.Date;
import java.util.Properties;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.NoSuchProviderException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeUtility;
import org.apache.commons.mail.EmailAttachment;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
import org.apache.commons.mail.MultiPartEmail;
import org.apache.commons.mail.SimpleEmail;
/**
*文件名:DMail.java<br>
*@author 董利伟<br>
*版本:<br>
*描述:E-Mail发送工具类<br>
*创建时间:2008-2-28 下午04:37:40<br>
*文件描述:<br>
*修改者:<br>
*修改日期:<br>
*修改描述:<br>
*/
public class DMail {
/**
* 发送简单的email,不能添加附件
*/
public static final int SIMPLEEMAIL = 1;
/**
* 文本邮件,可以添加多个附件
*/
public static final int MULTIPARTEMAIL = 2;
/**
* HTML格式邮件,同时具有MultiPartEmail类所有“功能”
*/
public static final int HTMLEMAIL = 3;
/**
* 发件人的地址
*/
private String from_address = "";
/**
* 邮件标题
*/
private String title = "";
/**
* 邮件内容
*/
private String text = "";
/**
* 发送邮件服务器的信息
*/
private String mail_smtp_host = "";
/**
* 发件人用户名
*/
private String username = "";
/**
* 发件人密码
*/
private String passwod = "";
/**
* mail发送方式
*/
private int mail_type = 1;
/**
* 邮件附件列表
*/
private ArrayList accessoriesList = new ArrayList();
/**
* 发送地址列表
*/
private ArrayList to_addressList = new ArrayList();
/**
* 抄送地址列表
*/
private ArrayList cc_to_addressList = new ArrayList();
/**
* 密送地址列表
*/
private ArrayList bcc_to_addressList = new ArrayList();
/**
* 获取发件人的地址
* @return
*/
private String getFrom_address() {
return from_address;
}
/**
* 设置发件人的地址
* @param from_address
*/
public void setFrom_address(String from_address) {
this.from_address = from_address;
}
/**
* 获取smtp host主机地址
* @return
*/
private String getMail_smtp_host() {
return mail_smtp_host;
}
/**
* 设置smtp host主机地址
* @param mail_smtp_host
*/
public void setMail_smtp_host(String mail_smtp_host) {
this.mail_smtp_host = mail_smtp_host;
}
/**
* 获取发件人密码
* @return
*/
private String getPasswod() {
return passwod;
}
/**
* 设置发件人密码
* @param passwod
*/
public void setPasswod(String passwod) {
this.passwod = passwod;
}
/**
* 获取邮件内容
* @return
*/
private String getText() {
return text;
}
/**
* 设置邮件内容(支持HTML)
* @param text
*/
public void setText(String text) {
this.text = text;
}
/**
* 获取邮件标题
* @return
*/
private String getTitle() {
return title;
}
/**
* 设置邮件标题(主题)
* @param title
*/
public void setTitle(String title) {
this.title = title;
}
/**
* 获取发件人用户名
* @return
*/
private String getUsername() {
return username;
}
/**
* 设置发件人用户名
* @param username
*/
public void setUsername(String username) {
this.username = username;
}
/**
* 添加附件
* @param path
*/
public void AddAccessories(String path){
EmailAttachment attachment = new EmailAttachment();
attachment.setPath(path);
attachment.setDisposition(EmailAttachment.ATTACHMENT);
//文件描述
attachment.setDescription("venustech");
try {
attachment.setName(MimeUtility.encodeText(path.substring(path.lastIndexOf("/")+1)));//解决中文字符问题
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
this.accessoriesList.add(attachment);
}
/**
* 添加发送地址
* @param path
*/
public void Add_To_addressList(String path){
String[] p = path.split(";");
for(int i = 0 ; i < p.length;i++){
if(p[i].equals("")){
continue;
}
to_addressList.add(p[i]);
}
}
/**
* 添加抄送地址
* @param path
*/
public void Add_Cc_To_addressList(String path){
String[] p = path.split(";");
for(int i = 0 ; i < p.length;i++){
if(p[i].equals("")){
continue;
}
cc_to_addressList.add(p[i]);
}
}
/**
* 添加密送地址
* @param path
*/
public void Add_Bcc_To_addressList(String path){
String[] p = path.split(";");
for(int i = 0 ; i < p.length;i++){
if(p[i].equals("")){
continue;
}
bcc_to_addressList.add(p[i]);
}
}
/**
* 发送HTML格式邮件,可以添加多个附件
* @return
*/
private boolean sendHtmlEMail(){
try {
HtmlEmail email = new HtmlEmail();
//smtp host
email.setHostName(getMail_smtp_host());
email.setCharset("UTF-8");
//登陆邮件服务器的用户名和密码
email.setAuthentication(getUsername(),getPasswod());
//接收人
//email.addTo(getTo_address(),getFrom_nickname());
for(int i = 0 ; i < to_addressList.size();i++){
email.addTo(((String)to_addressList.get(i)),((String)to_addressList.get(i)));
}
//抄送
for(int i = 0 ; i < cc_to_addressList.size();i++){
email.addCc(((String)cc_to_addressList.get(i)),((String)cc_to_addressList.get(i)));
}
//密送
for(int i = 0 ; i < bcc_to_addressList.size();i++){
email.addBcc(((String)bcc_to_addressList.get(i)),((String)bcc_to_addressList.get(i)));
}
//发送人
email.setFrom(getFrom_address(),getFrom_address());
//标题
email.setSubject(getTitle());
//邮件内容
email.setHtmlMsg(getText());
//添加附件(附件,可以定义多个附件对象)
for(int i = 0; i < this.accessoriesList.size();i++){
EmailAttachment attachment = (EmailAttachment)this.accessoriesList.get(i);
email.attach(attachment);
}
//发送
email.send();
} catch (EmailException e) {
return false;
}
return true;
}
/**
* 发送文本邮件,可以添加多个附件
* @return
*/
private boolean sendMultipartEMail(){
try {
MultiPartEmail email = new MultiPartEmail();
//smtp host
email.setHostName(getMail_smtp_host());
email.setCharset("UTF-8");
//登陆邮件服务器的用户名和密码
email.setAuthentication(getUsername(),getPasswod());
//接收人
//email.addTo(getTo_address(),getFrom_nickname());
for(int i = 0 ; i < to_addressList.size();i++){
email.addTo(((String)to_addressList.get(i)),((String)to_addressList.get(i)));
}
//抄送
for(int i = 0 ; i < cc_to_addressList.size();i++){
email.addCc(((String)cc_to_addressList.get(i)),((String)cc_to_addressList.get(i)));
}
//密送
for(int i = 0 ; i < bcc_to_addressList.size();i++){
email.addBcc(((String)bcc_to_addressList.get(i)),((String)bcc_to_addressList.get(i)));
}
//发送人
email.setFrom(getFrom_address(),getFrom_address());
//标题
email.setSubject(getTitle());
//邮件内容
email.setMsg(getText());
//添加附件(附件,可以定义多个附件对象)
for(int i = 0; i < this.accessoriesList.size();i++){
EmailAttachment attachment = (EmailAttachment)this.accessoriesList.get(i);
email.attach(attachment);
}
//发送
email.send();
} catch (EmailException e) {
return false;
}
return true;
}
/**
* 发送简单邮件
* @return
*/
private boolean sendSimpleEMail(){
SimpleEmail email = new SimpleEmail();
//smtp host
email.setHostName(getMail_smtp_host());
email.setCharset("UTF-8");
//登陆邮件服务器的用户名和密码
try {
email.setAuthentication(getUsername(),getPasswod());
//接收人
//email.addTo(getTo_address(),getFrom_nickname());
for(int i = 0 ; i < to_addressList.size();i++){
email.addTo(((String)to_addressList.get(i)),((String)to_addressList.get(i)));
}
//抄送
for(int i = 0 ; i < cc_to_addressList.size();i++){
email.addCc(((String)cc_to_addressList.get(i)),((String)cc_to_addressList.get(i)));
}
//密送
for(int i = 0 ; i < bcc_to_addressList.size();i++){
email.addBcc(((String)bcc_to_addressList.get(i)),((String)bcc_to_addressList.get(i)));
}
//发送人
email.setFrom(getFrom_address(),getFrom_address());
//标题
email.setSubject(getTitle());
//邮件内容
email.setMsg(getText());
//发送
email.send();
} catch (EmailException e) {
e.printStackTrace();
return false;
}
return true;
}
/**
* 发送邮件
* @return
*/
public boolean sendEMail(){
boolean result = false;
if(this.getMail_type() == this.SIMPLEEMAIL){
result = sendSimpleEMail();
}else if(this.getMail_type() == this.MULTIPARTEMAIL){
result = sendMultipartEMail();
}else{
result = sendHtmlEMail();
}
return result;
}
/**
* 获取邮件发送类型
* @return
*/
public int getMail_type() {
return mail_type;
}
/**
* 设置邮件发送类型
* @param mail_type
*/
public void setMail_type(int mail_type) {
this.mail_type = mail_type;
}
/**
* 发送邮件的例子
* @param args
*/
public static void main(String [] args){
// DMail dmail = new DMail();
// /**/
// dmail.setFrom_address("发件人地址");//完整邮箱
// dmail.Add_To_addressList("收件人地址(列表)");//收件人邮箱地址(多个地址以;分割)
// dmail.Add_Cc_To_addressList("抄送地址(列表)");
// dmail.Add_Bcc_To_addressList("密送地址(列表)");
// dmail.setTitle("邮件的标题信息");
// dmail.setText("邮件内容");
// dmail.setMail_smtp_host("smtp服务器地址");
// dmail.setUsername("用户名");
// dmail.setPasswod("密码");
// /**/
//
// //简单邮件发送方式
// dmail.setMail_type(DMail.SIMPLEEMAIL);
// if(dmail.sendEMail()){
// System.out.println("邮件发送成功");
// }else{
// System.out.println("邮件发送失败");
// }
/**发送带附件的邮件**
dmail.setMail_type(DMail.MULTIPARTEMAIL);
dmail.AddAccessories("c://response.txt");
dmail.AddAccessories("c://12.txt");
if(dmail.sendEMail()){
System.out.println("邮件发送成功");
}else{
System.out.println("邮件发送失败");
}/**/
}
}
分享到:
相关推荐
为了简化邮件发送的过程,开发者通常会创建Email发送工具类。这个工具类通常包含了处理SMTP(Simple Mail Transfer Protocol)协议、设置邮件头信息、添加附件以及验证用户凭据等功能。下面我们将详细讨论关于Email...
本篇将深入讲解如何使用Apache Commons Email工具类来发送带有验证码的电子邮件。 首先,Apache Commons Email是Apache软件基金会的一个项目,它提供了一组丰富的API,简化了Java中发送电子邮件的过程。这个库包含...
Java Email工具类 发送邮件,不是很强大
【腾讯邮件发送工具类】是基于Java编程语言开发的一个实用工具,主要目的是简化通过腾讯邮箱发送邮件的过程。这个工具类通常包含了一系列方法,用于设置邮件的收件人、主题、正文,以及添加附件等操作。它可能依赖于...
Java Email工具类是Java开发中用于发送电子邮件的实用程序,主要涉及到JavaMail API。这个API提供了处理MIME协议的能力,使开发者能够构建复杂的邮件,包括文本、图片和附件。MIME(Multipurpose Internet Mail ...
使用阿里巴巴邮件发送工具类时,开发者需要在自己的项目中引入这些库文件,并根据`email1688.properties`配置邮件发送的环境。然后,可以通过调用工具类的方法,传入必要的参数(如邮件内容、收件人等),实现邮件的...
`SendJMail.java`文件很可能是一个已经封装好的邮件发送工具类,它可能包含了设置邮件服务器、发件人、收件人、主题、正文以及附件等功能。此类通常会提供静态方法,开发者只需要传入必要的参数,就可以方便地发送...
java发送邮件工具类,支持发送文本邮件,及html格式邮件
通过以上介绍,我们可以看出"commos-email邮件发送类"是一个非常实用的工具,能够帮助开发者快速实现邮件发送功能,而无需深入了解底层的SMTP协议细节。在实际项目中,只要根据自身需求配置好邮件发送器,就可以轻松...
Java发送带模板的邮件工具类是一种实用的编程实践,它允许开发者通过自定义HTML模板来创建个性化的电子邮件。在Java中,我们可以利用`javax.mail`库来实现这个功能。这个库提供了丰富的API,用于发送、接收和处理...
Apache Commons Email 是一...总的来说,Apache Commons Email为Java开发者提供了一套强大的工具,使发送HTML邮件变得简单而高效。通过合理地利用其特性,并结合最佳实践,我们可以创建出既美观又功能丰富的邮件服务。
这个"发送多人邮件+多附件工具类"是为了解决这个问题而设计的,它可以帮助开发者便捷地向多个收件人发送带有多个附件的邮件。下面将详细讲解其中涉及的关键知识点。 1. JavaMail API: JavaMail API是Java中用于...
5. **Email发送**: C#提供了SmtpClient类来处理电子邮件的发送。开发者可以通过配置SMTP服务器信息,设置发件人、收件人、主题和正文,然后使用SmtpClient类发送邮件。还可以添加附件、设置HTML格式的正文等。 6....
基于 System.Web.Mail 与 System.Net.Mai 实现的EmailClient,展示了两种不同命名空间下的mail发送区别与使用方式,并提供了统一的帮助类处理邮件发送。 邮件异步发送示例: EmailHelper.SendNetMailAsync(new ...
总结一下,Apache Commons Email库为Java开发者提供了方便的邮件发送功能,简化了与SMTP服务器的交互。通过`SendMail.java`文件,我们可以学习到如何使用这个库来创建、配置和发送电子邮件,从而在项目中实现更高效...
EmailUtils - 邮件工具类,支持发送带附件的邮件 encryption AesUtils - 实现AES加密解密 Base64Utils - 实现Base64加密解密 Md5Utils - 获取字符串或文件的md5 excel ReadExcel2003 - 以model方式读2003版Excel...
在PHP中,发送电子邮件是一项常见的任务,特别是在网页应用中用于用户注册验证、密码重置等...如果你在网页应用中需要发送电子邮件功能,这个类将是一个方便的工具,只需简单导入并进行配置,即可轻松实现邮件发送。
这个名为"发送邮件工具类.rar"的压缩包显然包含了一个Java工具类,用于简化邮件发送过程。下面,我们将深入探讨Java中如何实现邮件发送,以及相关的知识点。 首先,Java提供了JavaMail API来处理邮件发送。这个API...
4. **Email**: 虽然Java标准库没有直接的邮件发送工具类,但可以使用 `javax.mail` 库,它提供了 `Session`、`Message` 和 `Transport` 等类来发送和接收电子邮件。 5. **Page**: 对于分页处理,通常会自定义工具类...
【冰翎Email发送类v1.0】是一个用于在编程环境中发送电子邮件的工具,它简化了邮件发送过程,使得开发者可以快速实现邮件功能。在这个压缩包中,主要包含的是一个或多个与邮件发送相关的文件,可能包括源代码、示例...