下面是一段用Java mail API发带附件邮件的方法,附件是读的硬盘上的文件,你参考下吧
String message="Mail send OK!";
Session session=null;
Properties props = System.getProperties();
props.put("mail.smtp.host", smtpServer);
if(ifAuth){ //the mail server ask auth
props.put("mail.smtp.auth","true");
MailAuth smtpAuth=new MailAuth(username,password);
session=Session.getDefaultInstance(props, smtpAuth);
}else{
props.put("mail.smtp.auth","false");
session=Session.getDefaultInstance(props, null);
}
session.setDebug(isDebug);
Transport trans = null;
try {
Message msg = new MimeMessage(session);
try{
Address from_address;
if (displayName == null)
from_address = new InternetAddress(from);
else
from_address = new InternetAddress(from, displayName);
msg.setFrom(from_address);
}catch(java.io.UnsupportedEncodingException e){
e.printStackTrace();
}
//InternetAddress[] address={new InternetAddress(to)};
InternetAddress[] address= InternetAddress.parse(to);
msg.setRecipients(Message.RecipientType.TO,address);
msg.setSubject(subject);
if (cc != null) {
InternetAddress[] ccAddr= InternetAddress.parse(cc);
msg.setRecipients(Message.RecipientType.CC, ccAddr);
}
Multipart mp = new MimeMultipart();
MimeBodyPart mbp = new MimeBodyPart();
//mbp.setContent(content.toString(), "text/html"); //;charset=gb2312");
mbp.setContent(content.toString(), "text/plain"); //;charset=gb2312");
mp.addBodyPart(mbp);
if(!file.isEmpty()){//have attachment
Enumeration efile=file.elements();
while(efile.hasMoreElements()){
mbp=new MimeBodyPart();
filename=efile.nextElement().toString(); //get each attachment name
FileDataSource fds=new FileDataSource(filename); //get the file data source
mbp.setDataHandler(new DataHandler(fds)); //get the attachment content
mbp.setFileName(fds.getName()); //get the file name and include to content
mp.addBodyPart(mbp);
}
file.removeAllElements();
}
msg.setContent(mp); // add the Multipart into mail
msg.setSentDate(new Date()); //set the date in mail header
// send
msg.saveChanges();
trans = session.getTransport("smtp");
trans.connect(smtpServer, username, password);
trans.sendMessage(msg, msg.getAllRecipients());
trans.close();
}catch(AuthenticationFailedException e){
map.put("state", "failed");
message="Mail send fail!Error caused:auth error!\n";
e.printStackTrace();
}catch (MessagingException e) {
message="Mail send fail!Error caused:\n"+e.getMessage();
map.put("state", "failed");
e.printStackTrace();
Exception ex = null;
if ((ex = e.getNextException()) != null) {
System.out.println(ex.toString());
ex.printStackTrace();
}
}
分享到:
相关推荐
JavaMail 的使用通常需要依赖一组特定的 JAR 包,这些包包含了实现 SMTP、POP3、IMAP 等邮件协议的类和方法。 在描述中提到的 "javamail-1.4.4" 可能是指 JavaMail API 的一个版本号,这通常是一个包含所有必要组件...
这个"javamail使用demo示例"是JavaMail官方提供的一个实例集合,旨在帮助开发者更好地理解和应用JavaMail库。下面我们将深入探讨JavaMail的核心概念、主要功能以及如何使用这些示例代码。 一、JavaMail核心概念 1....
使用 JavaMail 代发邮件 使用 JavaMail 库可以轻松地在 Java 应用程序中发送电子邮件。JavaMail 是一个 Java API,用于在 Java 应用程序中发送和接收电子邮件。它提供了一个抽象层,允许开发者使用不同的电子邮件...
然后,你可以使用 Transport 类的 send 方法来发送 Message 对象,该对象包含了邮件的所有内容,如发件人、收件人、主题和正文。如果邮件有附件,可以通过 MimeMessage 类和 MimeBodyPart 类来添加。 对于邮件接收...
这个基础教程将引导你逐步了解如何使用JavaMail API进行邮件操作。 1. **JavaMail简介** JavaMail API是Java平台上处理邮件的核心库,它包含了多个接口和类,如`Session`, `Message`, `Multipart`和`Address`等,...
JavaMail API documentation.rar可能是JavaMail API的官方英文文档,包含了详细的类、接口和方法说明,以及使用示例。这对于开发者理解和使用JavaMail API进行邮件编程非常关键,因为它提供了全面的技术参考。 ...
这个实例包含了使用JavaMail进行邮件操作所需的全部资源,包括配置和服务的设置,以及具体的代码示例。 首先,JavaMail的核心库是`javax.mail`和`com.sun.mail`,它们提供了邮件协议(如SMTP、POP3、IMAP)的实现。...
使用JavaMail API可以编写出跨平台的邮件处理应用,而且由于Java的跨平台特性,使用JavaMail API开发的邮件应用可以部署在Windows、Linux、Unix、Mac OS等多种操作系统上。 文件中提到的“Evaluation Purposes”和...
- 使用`Transport`类的`send()`方法发送`MimeMessage`。 - 这个过程中,可能还需要处理SSL/TLS安全连接,特别是当SMTP服务器要求加密连接时。 5. JSP中的表单处理: 用户输入的邮件信息(如收件人、主题和正文)...
下面将详细阐述 JavaMail 的核心概念、使用方法以及提供的功能。 首先,`JavaMail 开发手册.pdf` 提供了官方的详细文档,对于学习和理解 JavaMail 的使用至关重要。手册通常会涵盖以下内容: 1. **安装与配置**:...
JavaMail API是Java EE的一部分,但也可以在Java SE环境中使用。`javaMail.jar`是JavaMail API的实现库,包含了实现邮件协议(如SMTP、POP3、IMAP)的类和方法。 JavaMail API的核心概念包括以下几个部分: 1. **...
使用JavaMail发送邮件的基本步骤如下: 1. 创建一个`Properties`对象,设置SMTP服务器的属性,如主机名、端口、身份验证等。 2. 使用`Session.getInstance()`创建一个`Session`对象,传入上面的属性。 3. 创建一个`...
本篇文章将详细探讨JavaMail的简单使用,包括如何设置、配置以及实际发送邮件。 一、JavaMail的环境配置 在使用JavaMail之前,首先需要将其添加到项目的类路径中。这通常通过Maven或Gradle的依赖管理来实现。如果...
3. **MIME (Multipurpose Internet Mail Extensions)**:JavaMail 使用 MIME 标准来处理邮件中的多种类型的数据,如文本、图像、附件等。MIME 支持创建复杂的多部分消息,包括嵌入的图片和其他资源。 4. **Session ...
本篇文章将深入探讨JavaMail的核心概念、关键组件以及如何使用这两个特定的jar包——`jaf-1_1_1.zip`和`javamail1_4_7.zip`。 首先,让我们了解JavaMail的基本组件: 1. **JavaMail API**:这是JavaMail的核心部分...
JavaMail是一种广泛使用的Java库,它允许开发人员在Java应用程序中发送和接收电子邮件。这个教程是为初学者设计的,旨在帮助他们理解如何利用JavaMail API进行邮件操作。压缩包包含两个关键部分:JavaMail的实例代码...
- **异步发送**:使用JavaMail的非阻塞API或线程池实现邮件的并发发送。 - **邮件模板**:结合模板引擎(如FreeMarker)创建动态邮件内容。 - **邮件验证**:使用JavaMail的验证机制检查邮件地址的有效性。 6. *...
使用Apache Commons Email,你可以避免直接与JavaMail API交互时的复杂性,而是通过简单的API调用来实现邮件发送。 要使用这两个jar包进行邮件发送,首先需要将它们添加到项目的类路径中。在传统的Java项目中,这...
JavaMail,顾名思义,提供给开发者处理电子邮件相关的编程接口。它是Sun发布的用来处理email的API。它可以方便地执行一些常用的邮件传输。我们可以基于JavaMail开发出类似于Microsoft Outlook的应用程序。