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);
}
}
- 浏览: 36978 次
- 性别:
- 来自: 上海
最新评论
-
somefuture:
太好了,查了好久,还是你给解决了。赞一个。
RedHat5.4中关于中文乱码的解决方法
相关推荐
通过以上步骤,你就可以利用 JavaMail 实现功能完备的邮件发送了,包括向多个人发送邮件、设置抄送和密送,以及添加多个附件。注意,实际使用时,你需要根据你的邮件服务提供商调整相应的配置参数,例如对于其他邮箱...
Java通过SMTP(Simple Mail Transfer ...以上就是Java通过SMTP发送邮件涉及的主要知识点,包括抄送、密送、附件、多线程发送、邮件日志记录以及失败邮件的处理策略。这些内容涵盖了邮件发送的核心流程和技术要点。
这个"Java发送邮件_单附件_多附件_加抄送多人 _2个示例zip"的资源包含两个核心类:EmailManager.java和AnnexMailService.java,它们提供了一个强大的邮件发送功能,支持单个或多个附件,以及添加抄送人。下面将详细...
java 发邮件工具类 多收件人 多抄送人 多附件 内有三个重载方法 使用方便
在这个主题中,我们将深入探讨如何使用Java Mail API来发送包含text、HTML正文以及多个附件的邮件,并且实现发送、抄送和密送给多个收件人。 首先,我们需要导入Java Mail所需的库。主要的依赖包括`javax.mail`和`...
5. **添加附件**:如果需要发送附件,可以使用`Multipart`对象来组合多个部分(正文和附件)。`MimeBodyPart`用于表示邮件的每一个部分,然后添加到`Multipart`中。 ```java Multipart multipart = new ...
5. **创建MimeMultipart对象**:邮件可以包含多个部分,比如纯文本和附件。因此,创建一个`MimeMultipart`对象,并设置其类型为"related"或"alternative",取决于你希望附件与正文内容的关系。 6. **创建...
总的来说,JavaMail API为Java开发者提供了强大的邮件处理功能,通过合理的代码组织和配置,我们可以轻松实现邮件发送,包括添加附件和抄送功能。在`mail2java`这个压缩包文件中,可能包含了示例代码或工具,帮助你...
Java 实现邮件发送功能是许多开发者在开发过程中需要用到的基础技术之一。邮件发送功能不仅可以用于邮箱验证,例如在用户注册时确认邮箱的有效性,还可以用于发送系统通知、定期报告或者客户服务等场景。本教程将...
`Message`类代表邮件本身,你可以设置发件人、收件人、抄送人、密送人、主题和邮件正文。`MimeMessage`是`Message`的一个子类,适用于处理包含多种类型的多部分消息。 5. **创建Transport对象** `Transport`类...
### Java实现发送邮件知识点...通过以上介绍,我们可以了解到Java发送邮件的实现涉及到许多细节和技术点,包括邮件内容的组织、附件处理、群发、抄送与密送等功能。理解这些概念有助于更好地设计和实现邮件发送系统。
通过`MimeBodyPart`和`Multipart`,我们可以添加一个或多个附件。最后,使用`Transport.send(message)`将邮件发送出去。 现在,我们谈谈`Gearmand`。它是分布式任务队列系统,用于异步处理任务。在这个场景中,`...
JAVA邮件发送工具类(支持同步和异步发送邮件以及附件信息),支持多个抄送邮件发送。
Java调用SMTP命令发邮件,实现抄送,密送,附件等。 无需邮件搭建邮件服务器直接发送,改版加入了多线程,同时邮件日志采用文件和数据库同时记录,并写了定时器对于发送失败的邮件进行统计和重发(还在完善这个功能,该...
- `to`, `cc`, `bcc`:收件人、抄送和密送的电子邮件列表。 - `subject`:邮件的主题。 - `user` 和 `password`:用于身份验证的用户名和密码,通常对应发件人的电子邮件账户。 3. **邮件内容**: - `...
Java发送邮件功能是Java开发中常见的一项任务,它允许开发者通过编程的方式实现电子邮件的发送,包括正文内容、附件以及抄送等高级功能。在Java中,我们主要利用JavaMail API来实现这一目标。 JavaMail API是一个...
5. **添加附件**:发送带有附件的邮件也是常见需求,`EasyEmailUtil`应该提供一个方法来添加多个附件,例如文件路径或输入流,然后在邮件中一起发送。 6. **错误处理**:为了提高健壮性,工具类通常会包含异常处理...
总之,这个"发送多人邮件+多附件工具类"利用JavaMail API实现了发送带有多个附件的邮件功能,并支持同时向多个收件人发送。开发者可以根据自己的需求,通过配置SMTP服务器信息和邮件内容,轻松实现邮件的发送。在...
本教程将详细讲解如何使用 JavaMail 实现邮件发送功能,包括支持多个接收人、抄送人以及添加多个附件。 首先,确保你已经添加了 JavaMail 的依赖库到你的项目中。如果是 Maven 项目,可以在 pom.xml 文件中添加以下...