import java.util.*;
import java.io.*;
import javax.mail.*;
import javax.mail.internet.*;
import javax.activation.*;
/**
* <p>Title: 使用javamail发送邮件</p>
* <p>Description: 演示如何使用javamail包发送电子邮件。这个实例可发送多附件</p>
* <p>Copyright: Copyright (c) 2003</p>
* <p>Filename: Mail.java</p>
* @version 1.0
*/
public class Mail {
String to = "";//收件人
String from = "";//发件人
String host = "";//smtp主机
String username = "" ;
String password = "" ;
String filename = "";//附件文件名
String subject = "";//邮件主题
String content = "";//邮件正文
Vector file = new Vector();//附件文件集合
/**
*<br>方法说明:默认构造器
*<br>输入参数:
*<br>返回类型:
*/
public Mail(){
}
/**
*<br>方法说明:构造器,提供直接的参数传入
*<br>输入参数:
*<br>返回类型:
*/
public Mail(String to,String from,String smtpServer,String username,String password,String subject,String content){
this.to = to;
this.from = from;
this.host = smtpServer;
this.username = username;
this.password = password;
this.subject = subject;
this.content = content;
}
/**
*<br>方法说明:设置邮件服务器地址
*<br>输入参数:String host 邮件服务器地址名称
*<br>返回类型:
*/
public void setHost(String host){
this.host = host;
}
/**
*<br>方法说明:设置登录服务器校验密码
*<br>输入参数:
*<br>返回类型:
*/
public void setPassWord(String pwd){
this.password = pwd;
}
/**
*<br>方法说明:设置登录服务器校验用户
*<br>输入参数:
*<br>返回类型:
*/
public void setUserName(String usn){
this.username = usn;
}
/**
*<br>方法说明:设置邮件发送目的邮箱
*<br>输入参数:
*<br>返回类型:
*/
public void setTo(String to){
this.to = to;
}
/**
*<br>方法说明:设置邮件发送源邮箱
*<br>输入参数:
*<br>返回类型:
*/
public void setFrom(String from){
this.from = from;
}
/**
*<br>方法说明:设置邮件主题
*<br>输入参数:
*<br>返回类型:
*/
public void setSubject(String subject){
this.subject = subject;
}
/**
*<br>方法说明:设置邮件内容
*<br>输入参数:
*<br>返回类型:
*/
public void setContent(String content){
this.content = content;
}
/**
*<br>方法说明:把主题转换为中文
*<br>输入参数:String strText
*<br>返回类型:
*/
public String transferChinese(String strText){
try{
strText = MimeUtility.encodeText(new String(strText.getBytes(), "GB2312"), "GB2312", "B");
}catch(Exception e){
e.printStackTrace();
}
return strText;
}
/**
*<br>方法说明:往附件组合中添加附件
*<br>输入参数:
*<br>返回类型:
*/
public void attachfile(String fname){
file.addElement(fname);
}
/**
*<br>方法说明:发送邮件
*<br>输入参数:
*<br>返回类型:boolean 成功为true,反之为false
*/
public boolean sendMail(){
//构造mail session
Properties props = System.getProperties();
props.put("mail.smtp.host",host);
props.put("mail.smtp.auth","true");
Session session=Session.getDefaultInstance(props, new Authenticator(){
public PasswordAuthentication getPasswordAuthentication(){
return new PasswordAuthentication(username,password);
}
});
try {
//构造MimeMessage 并设定基本的值
MimeMessage msg = new MimeMessage(session);
msg.setFrom(new InternetAddress(from));
InternetAddress[] address={new InternetAddress(to)};
msg.setRecipients(Message.RecipientType.TO,address);
subject = transferChinese(subject);
msg.setSubject(subject);
//构造Multipart
Multipart mp = new MimeMultipart();
//向Multipart添加正文
MimeBodyPart mbpContent = new MimeBodyPart();
mbpContent.setText(content);
//向MimeMessage添加(Multipart代表正文)
mp.addBodyPart(mbpContent);
//向Multipart添加附件
Enumeration efile=file.elements();
while(efile.hasMoreElements()){
MimeBodyPart mbpFile = new MimeBodyPart();
filename=efile.nextElement().toString();
FileDataSource fds = new FileDataSource(filename);
mbpFile.setDataHandler(new DataHandler(fds));
mbpFile.setFileName(fds.getName());
//向MimeMessage添加(Multipart代表附件)
mp.addBodyPart(mbpFile);
}
file.removeAllElements();
//向Multipart添加MimeMessage
msg.setContent(mp);
msg.setSentDate(new Date());
//发送邮件
Transport.send(msg);
} catch (MessagingException mex) {
mex.printStackTrace();
Exception ex = null;
if ((ex=mex.getNextException())!=null){
ex.printStackTrace();
}
return false;
}
return true;
}
}//end
分享到:
相关推荐
在提供的压缩包文件“javamail例子”中,很可能包含了一个完整的 JavaMail 示例项目,你可以通过运行其中的代码来实践邮件发送的过程,这将有助于加深理解和掌握。记得查看博客文章...
javamail接收邮件例子,我稍微改动了一下,有些错误和异常抛出了
JavaMail 是一个强大的开源库,用于在Java应用程序中处理电子邮件。这个例子展示了如何使用JavaMail API从163邮箱向QQ邮箱发送邮件。在Java开发中,JavaMail API提供了丰富的功能,包括创建、读取、发送和管理电子...
JavaMail 是一个开源的 Java 库,用于处理电子邮件的发送、接收和管理。在 JavaMail 1.6.0 版本中,它提供了一系列官方示例,帮助开发者更好地理解和应用这个库。这个版本适用于 JDK 1.7 及以上版本,推荐使用最新的...
在Java编程中,发送电子邮件是一个常见的任务,通常通过JavaMail API来实现。JavaMail是一个开放源代码的API,它允许开发者在Java应用程序中处理邮件协议,如SMTP、POP3和IMAP。在这个例子中,我们将详细探讨如何...
JavaMail 是一个开源库,它提供了在 Java 应用程序中发送和接收电子邮件的功能。它扩展了 Java EE 的 javax.mail 包,提供了更强大的邮件处理能力。在标题和描述中提到的,我们将讨论如何使用 JavaMail 实现发送邮件...
例如,你可以创建一个名为`SendMailAction`的类,其中包含一个`execute()`方法,这个方法使用JavaMail API发送邮件。 如果你的项目中包含一个名为`mySendMail`的类或文件,这可能是一个实现邮件发送的示例代码。这...
在压缩包"JavaMail例子"中,可能包含了一个或多个演示如何执行这些操作的Java源代码文件。通过阅读和运行这些示例,开发者可以直观地了解JavaMail API的使用方法,从而在自己的项目中实现邮件功能。 总之,JavaMail...
javamail例子——简单好用 可以直接发电子邮件 1.当工程是java EE 5的时候 在工程里面应该删除java EE 5里面相对应的 jar 路径在 第一个问题就是删除Java EE 5 Libraries/javaee.jar/mail。 第二个问题就是删除Java...
总的来说,JavaMail是一个强大的工具,它允许开发者用Java编写功能丰富的邮件应用程序。通过理解`Session`、`Message`、`Store`、`Folder`以及`MimeMultipart`和`MimeBodyPart`的用法,你可以构建出能够处理各种邮件...
一个简单的 JavaMail 发送邮件的例子: ```java import javax.mail.*; import javax.mail.internet.*; public class EmailExample { public static void main(String[] args) throws Exception { // 设置邮件...
JavaMail 是一个开源库,广泛用于Java环境中发送和接收电子邮件。这个例子将深入解析如何使用JavaMail API来实现电子邮件的发送功能。 首先,你需要在项目中引入JavaMail的相关依赖。通常,这会是Maven的pom.xml...
JavaMail 是一个 Java API,允许开发者在 Java 应用程序中发送和接收电子邮件。这个例子展示了如何使用 JavaMail 发送一封简单的文本邮件。下面将详细解释这个 JavaMail 示例中的关键知识点: 1. **导入的库**:...
JavaMail 是一个强大的开源库,专门用于在Java应用程序中处理电子邮件。这个小例子将向我们展示如何使用JavaMail API发送电子邮件。在这个过程中,我们将探讨以下几个关键知识点: 1. **JavaMail API**: 这是一个...
JavaMail 是一个开源的 Java API,它允许开发者在 Java 应用程序中发送和接收电子邮件。这个API提供了与多种邮件服务器交互的能力,包括SMTP、POP3和IMAP协议。在"javamail 包含的包及简单例子"中,我们主要会探讨...
JavaMail 是一个强大的开源库,用于在Java应用程序中发送和接收电子邮件。这个例子将向你展示如何使用JavaMail API发送带有附件的邮件,并且可以直接在Eclipse集成开发环境中运行。在开始之前,确保你的项目已经导入...
在“JAVAMAIL例子”中,我们将探讨如何使用JavaMail API来实现邮件的发送功能。下面我们将深入讲解相关知识点。 1. **JavaMail API介绍** JavaMail API 是一套Java API,它为开发人员提供了一组接口和类,用于在...
JavaMail 是一个开源的 Java API,它允许程序员通过编程方式在 Java 应用程序中发送和接收电子邮件。这个API提供了一套完整的邮件处理接口,包括SMTP(简单邮件传输协议)、POP3(邮局协议版本3)和IMAP(因特网消息...