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发送工具类
Java Email工具类 发送邮件,不是很强大
使用mail.jar封装的万能邮件发送工具类
Java通过Apache提供的Commons Email工具类实现邮箱发送验证码功能,代码附详细注释文本,实现方法中附有验证码生成方法
java发送邮件工具类,支持发送文本邮件,及html格式邮件
基于 System.Web.Mail 与 System.Net.Mai 实现的EmailClient,展示了两种不同命名空间下的mail发送区别与使用方式,并提供了统一的帮助类处理邮件发送。 邮件异步发送示例: EmailHelper.SendNetMailAsync(new ...
EmailUtils - 邮件工具类,支持发送带附件的邮件 encryption AesUtils - 实现AES加密解密 Base64Utils - 实现Base64加密解密 Md5Utils - 获取字符串或文件的md5 excel ReadExcel2003 - 以model方式读2003版Excel...
C#基类工具类 ,提供IO流处理,正则处理,图片与文件上传下载, 报表生成,email发送,XML json 格式数据序列化等。
发送多人邮件+多附件工具类,亲测可用,实际项目中已使用,若有疑问,可联系
java中的email发送工具类,内提供注释以便于理解方便,对于email内部的修改工作,提供方法sendEmail(String mail,String mailMsg,String subject),发送邮箱的在方法内部固定,有注释,可以随时修改,适用于项目...
net 实现邮件发送工具类,封装的很简单易用。 net 实现邮件发送工具类,封装的很简单易用。 net 实现邮件发送工具类,封装的很简单易用。 net 实现邮件发送工具类,封装的很简单易用。
该工具类是用java实现邮箱发送功能的工具类,有了该类,你只需调用其中的方法,传入邮箱地址、邮件主题、邮件内容即可,十分方便,可以自行更改里边的设置。
JAVA语言中发送邮件超详细工具类,填写发送着邮箱信息即可发送。
一个Android 下发送Email的库
小工具类:1)登录操作需要在QQ互联或微信开放平台(非公众平台,认证一次要花钱的)上申请,补充配置中的key等值;2)发送email,建议使用企业邮箱,个人邮箱可能需要开始smtp服务,自己百度吧;3)发送短信我用的...
2.封装成工具类,采用线程池,分别实现RUNNABLE和CALLABLE,建议采用CALLABLE发送 3.能够批量发送,对发送失败的地址进行判断过滤,再发送,直至成功 4.提供TEST调用DEMO 5.有README说明各个类以及配置
java语言的邮件发送工具代码,自己写的工具类含抄送,密送,邮件附件功能,简单易懂,简单配置直接使用
maven工程,使用spring 整合quartz,增加email发送的工具类,修改一下数据库,即可直接使用,里面有一个真实业务demo,可按照该格式进行模块化开发
利用JavaMail API来发送Email的工具类 支持单发,群发及无限制数量的附件功能,并同时支持简单邮件和HTML两种格式的邮件内容 支持抄送,密送功能 具体使用参见其mail方法的使用示例
Java开发的后台发送单个或多个邮件的工具类,该类稳定性好,邮件发送后不会被当做垃圾邮件拦截,因此我在这里给大家分享一下。