package com.asia.home.cn.utils;
import java.io.File;
import java.io.UnsupportedEncodingException;
import java.util.Date;
import java.util.Properties;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.BodyPart;
import javax.mail.Message;
import javax.mail.MessagingException;
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;
import javax.mail.internet.MimeUtility;
/**
* 邮件多人发送,可设置发送,抄送,密送
* @author zhutongyu
*
*/
public class SendMail {
private static SendMail instance = null;
private SendMail() {
}
public static SendMail getInstance() {
if (instance == null) {
instance = new SendMail();
}
return instance;
}
public void send(String to[],String cs[],String ms[],String subject,String content,String formEmail,String fileList[]) {
try {
Properties p = new Properties(); // Properties p =
// System.getProperties();
p.put("mail.smtp.auth", "true");
p.put("mail.transport.protocol", "smtp");
p.put("mail.smtp.host", "smtp.asia-media.cn");
p.put("mail.smtp.port", "25");
// 建立会话
Session session = Session.getInstance(p);
Message msg = new MimeMessage(session); // 建立信息
BodyPart messageBodyPart = new MimeBodyPart();
Multipart multipart = new MimeMultipart();
msg.setFrom(new InternetAddress(formEmail)); // 发件人
String toList = null;
String toListcs = null;
String toListms = null;
//发送,
if(to!=null)
{
toList = getMailList(to);
InternetAddress[] iaToList = new InternetAddress().parse(toList);
msg.setRecipients(Message.RecipientType.TO, iaToList); // 收件人
}
//抄送
if(cs!=null)
{
toListcs = getMailList(cs);
InternetAddress[] iaToListcs = new InternetAddress().parse(toListcs);
msg.setRecipients(Message.RecipientType.CC, iaToListcs); // 抄送人
}
//密送
if(ms!=null)
{
toListms = getMailList(ms);
InternetAddress[] iaToListms = new InternetAddress().parse(toListms);
msg.setRecipients(Message.RecipientType.BCC, iaToListms); // 密送人
}
msg.setSentDate(new Date()); // 发送日期
msg.setSubject(subject); // 主题
msg.setText(content); // 内容
//显示以html格式的文本内容
messageBodyPart.setContent(content,"text/html;charset=gbk");
multipart.addBodyPart(messageBodyPart);
// 2.保存多个附件
if(fileList!=null){
addTach(fileList,multipart);
}
msg.setContent(multipart);
// 邮件服务器进行验证
Transport tran = session.getTransport("smtp");
tran.connect("smtp.asia-media.cn", "postmaster@asia-media.cn", "asiamedia");
tran.sendMessage(msg, msg.getAllRecipients()); // 发送
System.out.println("邮件发送成功");
} catch (Exception e) {
e.printStackTrace();
}
}
//添加多个附件
public void addTach(String fileList[],Multipart multipart) throws MessagingException, UnsupportedEncodingException{
for (int index = 0;index < fileList.length;index++)
{
MimeBodyPart mailArchieve = new MimeBodyPart();
FileDataSource fds = new FileDataSource(fileList[index]);
mailArchieve.setDataHandler(new DataHandler(fds));
mailArchieve.setFileName(MimeUtility.encodeText(fds.getName(),"GBK","B"));
multipart.addBodyPart(mailArchieve);
}
}
private String getMailList(String[] mailArray) {
StringBuffer toList = new StringBuffer();
int length = mailArray.length;
if (mailArray != null && length < 2) {
toList.append(mailArray[0]);
} else {
for (int i = 0; i < length; i++) {
toList.append(mailArray[i]);
if (i != (length - 1)) {
toList.append(",");
}
}
}
return toList.toString();
}
public static void main(String args[])
{
SendMail send = SendMail.getInstance();
String to[] = { "zhutongyu@asia-media.cn" };
String cs[] = null;
String ms[] = null;
String subject="测试一下";
String content="这是邮件内容,仅仅是测试,不需要回复";
String formEmail="zhutongyu@asia-media.cn";
String[] arrArchievList = new String[4];
arrArchievList[0] = "c:\\2012052914033429140297.rar";
arrArchievList[1] = "c:\\topSearch.html";
arrArchievList[2] = "c:\\topSearch2.html";
arrArchievList[3] = "c:\\logo_white.png";
// 2.保存多个附件
send.send(to,cs,ms,subject,content,formEmail,arrArchievList);
}
}
- 浏览: 35503 次
- 性别:
- 来自: 上海
最新评论
-
somefuture:
太好了,查了好久,还是你给解决了。赞一个。
RedHat5.4中关于中文乱码的解决方法
相关推荐
JavaMail实现邮件发送功能,可发送、抄送、密送多人,支持多附件的发送。配置相关参数后可直接调用发送邮件
java 发邮件工具类 多收件人 多抄送人 多附件 内有三个重载方法 使用方便
java发送邮件源代码,可以添加附件,可以抄送群发给多个人。
可以发送的例子,很方便嵌入到系统中来开发功能,支持多附件,多人抄送!
JAVA邮件发送工具类(支持同步和异步发送邮件以及附件信息),支持多个抄送邮件发送。
email发送,可以添加附件发送,发送给多个人,抄送 多个人。获悉下载个人邮箱里的邮件等。
Java调用SMTP命令发邮件,实现抄送,密送,附件等。 无需邮件搭建邮件服务器直接发送,改版加入了多线程,同时邮件日志采用文件和数据库同时记录,并写了定时器对于发送失败的邮件进行统计和重发(还在完善这个功能,该...
基于javamail1.4实现邮件发送,支持多收件人、抄送人、多附件等
java实现发送电子邮件源码,可以设置抄送、密送联系人;可以发送超级链接和多个附件
多个附件以,号分开;可抄送、密送等多个抄送、密送以,号分开。详细发送DEMO参考SendMailTest.java类: SendMailInfo mailInfo = new SendMailInfo("mail.china1168.com", true, "标题", "主体内容", "d:\\1.doc,d:\...
邮件发送,支持多个或单个附件的形式发送,同时抄送等功能也支持
- 支持附件的发送,可同时发送多个附件文件,附件的文件名可以为中文 - 支持秘送 - 支持已读回执 - 邮件服务器认证 - 等 2、还可以提供实名制的邮件批量发送: 邮件群发已经不是什么很了不起的...
写了一个可以复用的类,功能就是简单的发送一些邮件,可以含有收信人、抄送人、按送人、邮件主题、邮件正文、附件。 ------------------------------------------------------------ 测试或使用中发现问题,有更多...
邮件发送增加抄送,秘密抄送,附件,发件人姓名等选项,收件人支持多个 增加模板、静态文件、任务脚本git仓库同步功能(by https://github.com/qicz) 增加更多投稿表单入口 增加模板、任务计划脚本导入导出功能 增加...
本系统适用于所有用户,无管理员设置,可以创建多个网络邮箱帐号,可以编辑、接收和发送邮件等,不仅支持文本文件的发送与接收,还支持带附件邮件的发送与接收,支持抄送,还具有通讯录的存储功能。本系统在开发过程...
介绍 功能的快速概要支持多个邮件提供商:GMail,Yahoo Mail,Outlook.com等。 使用SSL / TLS(IMAPS)的加密邮件服务器连接。 从上次下载日期开始的增量下载。 将下载文件分组到分层文件夹中。 分组依据:年,月,...
本系统适用于所有用户,无管理员设置,可以创建多个网络邮箱帐号,可以编辑、接收和发送邮件等,不仅支持文本文件的发送与接收,还支持带附件邮件的发送与接收,支持抄送,还具有通讯录的存储功能。本系统在开发过程...
JXMail允许您从jsp,servlet或任何Java类中轻松,干净地发送电子邮件,而无需深入研究Java Mail的复杂性。 支持多个收件人,抄送,密件抄送,文件附件和html格式的电子邮件。