apache的commons项目下有个email子项目,它对JavaMail API进行了封装,用起来特变方便。在开始之前,需要做以下准备:
1、JavaMail API
添加JavaMail API里的mail包到CLASSPATH里,JavaMail API下载地址:http://java.sun.com/products/javamail/downloads/index.html
2、commons email
下载地址:http://www.apache.org/dist/commons/email/
工程目录结构如下:
以下给出两个简单示例程序
// SendMail.java 使用SimpleEmail发邮件
package com.apache.commons.email.demo;
import org.apache.commons.mail.SimpleEmail;
public class SendMail
{
public static void main ( String[] arg ) throws Exception
{
// 使用SimpleEmail对于中文内容,可能会产生乱码
SimpleEmail email = new SimpleEmail ( );
// SMTP服务器名
email.setHostName ( "smtp.163.com" );
// 登陆邮件服务器的用户名和密码
email.setAuthentication ( "peki", "123456" );
// 接收人
email.addTo ( "jstio@qq.com", "曦勤" );
// 发送人
email.setFrom ( "peki@163.com", "小陈" );
// 标题
email.setSubject ( "Test message" );
// 邮件内容
email.setMsg ( "This is a simple test of commons-email<br>我是小陈" );
// 发送
email.send ( );
System.out.println ( "Send email successful!" );
}
}
收信结果如下:
This is a simple test of commons-email<br>????
有乱码产生,并且html内容没有正常显示
// MailSender.java 使用HtmlEmail发邮件
package com.apache.commons.email.demo;
import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;
public class MailSender {
public static void main(String[] args) {
// 不要使用SimpleEmail,会出现乱码问题
HtmlEmail email = new HtmlEmail();
try {
// 这里是SMTP发送服务器的名字:,163的如下:
email.setHostName("smtp.163.com");
// 字符编码集的设置
email.setCharset("gbk");
// 收件人的邮箱
email.addTo("jstio@qq.com");
// 发送人的邮箱
email.setFrom("peki@163.com", "小陈");
// 如果需要认证信息的话,设置认证:用户名-密码。分别为发件人在邮件服务器上的注册名称和密码
email.setAuthentication("peki", "123456");
email.setSubject("下午3:00会议室讨论,请准时参加");
// 要发送的信息,由于使用了HtmlEmail,可以在邮件内容中使用HTML标签
email.setMsg("下午3:00会议室讨论,请准时参加<BR>呵呵~!");
// 发送
email.send();
System.out.println ( "邮件发送成功!" );
} catch (EmailException e) {
// TODO Auto-generated catch block
e.printStackTrace();
System.out.println ( "邮件发送失败!" );
}
}
}
收信结果如下:
下午3:00会议室讨论,请准时参加
呵呵~!
没有产生乱码,html内容正常显示
以上程序尽供参考,如需要在开发中使用,还得深入研究
posted on 2008-06-21 22:12
jadmin 阅读(3464)
评论(0) 编辑 收藏