原文:http://www.java-cn.com/club/html/72/n-572.html
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Date;
import java.util.Properties;
import java.util.Vector;
import javax.activation.DataHandler;
import javax.activation.FileDataSource;
import javax.mail.Address;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
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;
import org.springframework.util.StringUtils;
/**
* 利用Javamail写eml文件
*/
public class EmailFileWriter {
// 定义发件人、收件人、SMTP服务器、用户名、密码、主题、内容等
private String displayName;
private String from;
private String to;
private String cc;
private String bcc;
private String server;
private String subject;
private String content;
/**
* 用于保存发送附件的文件名的集合(<code>new String[]{文件名,显示名称}</code>)
*/
private Vector<String[]> attachList = new Vector<String[]>();
private String contentType = "text/html";
private String charset = "utf-8";
private int port = 25;
private Date sentDate;
public EmailFileWriter() {
}
/**
* 用于保存发送附件的文件名的集合(<code>new String[]{文件名,显示名称}</code>)
*/
public void addFile(String[] filename) {
attachList.add(filename);
}
public String getContentType() {
return contentType;
}
public void setContentType(String contentType) {
this.contentType = contentType;
}
public String getCharset() {
return charset;
}
public void setCharset(String charset) {
this.charset = charset;
}
/**
* 设置SMTP服务器地址
*/
public void setServer(String smtpServer) {
this.server = smtpServer;
}
/**
* 设置发件人的地址
*/
public void setFrom(String from) {
this.from = from;
}
/**
* 设置显示的名称
*/
public void setDisplayName(String displayName) {
this.displayName = displayName;
}
/**
* 设置接收者
*/
public void setTo(String to) {
this.to = to;
}
public String getCc() {
return cc;
}
public void setCc(String cc) {
this.cc = cc;
}
public String getBcc() {
return bcc;
}
public void setBcc(String bcc) {
this.bcc = bcc;
}
/**
* 设置主题
*/
public void setSubject(String subject) {
this.subject = subject;
}
/**
* 设置主体内容
*/
public void setContent(String content) {
this.content = content;
}
public Date getSentDate() {
return sentDate;
}
public void setSentDate(Date sentDate) {
this.sentDate = sentDate;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
/**
* 将email写至文件
*
* @throws IOException
* @throws FileNotFoundException
* @throws MessagingException
*/
public void writeTo(String filename) throws FileNotFoundException,
IOException, MessagingException {
Properties props = System.getProperties();
props.put("mail.smtp.host", server);
props.put("mail.smtp.port", port);
props.put("mail.smtp.auth", "false");
Session session = Session.getDefaultInstance(props, null);
session.setDebug(false);
Message msg = new MimeMessage(session);
Address from_address = new InternetAddress(from, displayName);
msg.setFrom(from_address);
InternetAddress[] addressTo = { new InternetAddress(to) };
msg.setRecipients(Message.RecipientType.TO, addressTo);
if (StringUtils.hasLength(cc)) {
InternetAddress[] addressCc = { new InternetAddress(cc) };
msg.setRecipients(Message.RecipientType.CC, addressCc);
}
if (StringUtils.hasLength(bcc)) {
InternetAddress[] addressBcc = { new InternetAddress(bcc) };
msg.setRecipients(Message.RecipientType.BCC, addressBcc);
}
msg.setSubject(subject);
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
mbp.setContent(content.toString(), getContentType() + "; charset="
+ getCharset());
mp.addBodyPart(mbp);
if (!attachList.isEmpty()) {// 有附件
for (String[] file : attachList) {
mbp = new MimeBodyPart();
FileDataSource fds = new FileDataSource(file[0]); // 得到数据源
mbp.setDataHandler(new DataHandler(fds)); // 得到附件本身并至入BodyPart
String dspName = file.length < 2 ? fds.getName() : file[1];
mbp.setFileName(MimeUtility.encodeText(dspName, getCharset(),
"B")); // 得到文件名同样至入BodyPart
mp.addBodyPart(mbp);
}
attachList.removeAllElements();
}
msg.setContent(mp); // Multipart加入到信件
msg.setSentDate(getSentDate()); // 设置信件头的发送日期
msg.saveChanges();
// 写至文件
msg.writeTo(new FileOutputStream(new File(filename)));
}
}
分享到:
相关推荐
在提供的压缩包文件"java实现邮件发送与接收"中,应该包含示例代码,帮助你更好地理解上述过程。通过运行这些代码,你可以快速测试邮件的发送和接收功能,并根据自己的需求进行定制。 请注意,对于Gmail等服务,...
JavaMail 是一个开源库,它允许Java开发者使用标准的SMTP(简单邮件传输协议)或ESMTP(扩展SMTP)协议发送邮件,同时也能通过IMAP(Internet消息访问协议)和POP3(邮局协议)接收邮件。这个示例将详细介绍如何在...
JavaMail.jar文件是Java编程语言中用于处理电子邮件的库,它是JavaMail API的核心组件。JavaMail API是一个开源的、跨平台的API,开发者可以利用它来实现邮件的发送、接收和管理功能,包括SMTP(简单邮件传输协议)...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和...通过阅读和理解代码,你可以学习如何在Java应用程序中利用JavaMail API发送邮件。记得在本地环境中配置正确的SMTP服务器信息,以确保邮件能够成功发送。
用JavaMail写的示例程序,已经打包为jar 使用前在jar同目录下建立三个文本文件 addr.txt这个是收信人的地址,可以无限多,建议不超过50,否则面临smtp退信,格式 :一行一个地址,后面不要加空行! login.txt这个是...
以上就是利用JavaMail API 实现邮件发送类的基本步骤和关键知识点。这个类提供了发送简单邮件和带附件的邮件,以及设置抄送和密送的功能,满足日常开发需求。在实际项目中,可以根据具体需求对这个类进行扩展和定制...
`mail.jar`是JavaMail的主要库文件,包含了发送和接收电子邮件所需的所有核心类和接口。它提供了对SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息访问协议)等邮件协议的支持。通过JavaMail,...
本教程将深入探讨如何在JSP(JavaServer Pages)中利用JavaMail API来实现邮件发送功能,同时提供了一个完整的Java Web项目文件供参考。 首先,要使用JavaMail,你需要在项目中引入必要的依赖。在Maven项目中,可以...
在本篇文章中,我们将深入探讨如何利用JavaMail API发送邮件,以及在实际应用中可能遇到的关键知识点。 首先,JavaMail的核心组件包括`javax.mail`和`javax.mail.internet`这两个包。`javax.mail`包含了处理邮件...
`javamail.jar` 文件是JavaMail的核心库,包含了所有必要的类和接口,使得开发者可以在他们的应用程序中集成邮件功能。 在JavaMail中,有几个关键的概念和组件: 1. **Session**: 这是JavaMail中的顶级对象,代表...
如果是Maven项目,可以在pom.xml文件中添加如下依赖: ```xml <groupId>com.sun.mail</groupId> <artifactId>javax.mail <version>1.6.2 ``` 3. **配置属性**:创建一个`Properties`对象来设置SMTP服务器...
本文将详细探讨如何在Spring环境中,利用JavaMail和Quartz库实现定时发送邮件的功能。 #### JavaMail简介 JavaMail API是一个允许Java应用程序读取和发送邮件的工具包。它提供了与不同邮件协议(如SMTP、POP3和...
在JavaMail API中,`mail.jar` 和 `activation.jar` 是两个核心的JAR文件,它们提供了不同的功能支持。 `mail.jar` 文件包含了JavaMail API的主要实现,提供了一系列的类和接口,用于与邮件服务器进行通信。这些类...
这个“javamail写的测试代码”可能是一个小型的Java项目,旨在演示或验证JavaMail库的正确配置和功能。下面,我们将深入探讨JavaMail的核心概念以及如何构建一个简单的测试邮件发送程序。 JavaMail API 提供了丰富...
该程序通过JavaMail是实现邮件的发送,代码经过测试并成功,如果不能成功,请你在outlook下测试,看看你的设置是否正确。其它类包都包含在工程里面,并设置好路径了,你下载后,只要加载到Eclipse下面并修改JRE路径...
JavaMail 是一个开源的 Java 库,用于在 Java 应用程序中实现电子邮件的发送和接收。它提供了丰富的 API,可以处理 SMTP、POP3、IMAP 协议,以及 MIME 消息的创建和解析。JavaMail 允许开发者轻松地实现邮件服务器的...
JavaMail API详解.chm文件可能是一个帮助文档,详细介绍了如何使用JavaMail API进行邮件操作。它可能涵盖了如何设置邮件服务器连接,创建邮件消息,添加附件,处理邮件头信息,以及使用MIME多部分消息等内容。这个...
JavaMail 是一个开源库,广泛用于在Java应用程序中发送和接收电子邮件。在JSP(JavaServer Pages)中使用JavaMail可以实现动态的邮件服务功能,比如注册验证、密码重置等场景。本项目通过JavaMail API实现了邮件的...
这个“javamail-1.4.7.rar”压缩包包含了JavaMail 1.4.7版本的源码、库文件和其他相关资源,使得开发者能够集成到他们的应用程序中,实现发送、接收和管理电子邮件的功能。 JavaMail 1.4.7 版本是一个稳定且广泛...