这几天在学习高杰的jbpm工作流教程,书中关于邮件的定时提醒功能始终有问题。到网上查询了多方原因,最后还是决定自己写了个小模块来完成了邮件收发问题。下面就介绍下本文代码,开发邮件收发需要的jar包主要有:activation-1.1.jar,mail-1.4.jar,commons-email-1.1.jar
代码很简单:
package mymail;
import org.apache.commons.mail.EmailException;import org.apache.commons.mail.SimpleEmail;
import Tools.PropertyReader;
/** * 邮件发送类 * @author ziliang * 2011.02.10 */ public class MailUtil {
/** * @param: reader:带有发送邮箱信息和到达邮箱的信息 * subject: 邮件主题 * msg: 邮件信息 * @return: 是否成功 * */ public static boolean send(PropertyReader reader,String subject,String msg) { SimpleEmail email = new SimpleEmail(); email.setTLS(true); email.setHostName(reader.getProperty("send.mail.host")); email.setAuthentication(reader.getProperty("send.mail.user"), reader.getProperty("send.mail.pass")); // 用户名和密码
try { email.addTo(reader.getProperty("to.mail.addr")); // 接收方 email.setFrom(reader.getProperty("send.mail.addr")); // 发送方 email.setSubject(subject); // 标题 email.setCharset("GBK"); email.setMsg(msg); // 内容 email.send(); System.out.println(reader.getProperty("send.mail.user")+ "的邮件已经成功发送到邮箱: "+ reader.getProperty("to.mail.addr")); return true; } catch (EmailException e) { e.printStackTrace(); } return false; }
}
用到了我自己定义的一个读取配置文件信息的PropertyReader.java(参见我的另外一篇文章-读取配置文件信息的工具类)
配置文件内容如下,存放在src目录下,send.mail.host=smtp.sina.comsend.mail.user=li2002.student@sina.comsend.mail.pass=abcdef234send.mail.addr=li2002.student@sina.comto.mail.addr=619233638@qq.com
测试类如下:
public class TestSendMail { public static void main(String[] args) { PropertyReader reader=new PropertyReader("mail.properties"); String subject="邮件主题"; String msg="邮件内容"; MailUtil.send(reader, subject, msg); }}