今天在Apache网站上下载commons-lang jar文件时突然看到commons-email-1.1.jar这个项目jar文件,看了看user guide确实比JDK提供的好多了,简单的几行代码就实现了发邮件的功能,以前实现过一个纯JavaMail带附件发邮件功能,代码复杂不说,现在回过头来都懒得看(主要是WEB项目注释少)。
贴上TEST代码看看,简单、清晰。只要稍加修改(邮件服务器地址、名称、密码)就可以了
简单邮件的发送:
package com.bulktree.mail; import java.util.Date; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.SimpleEmail; public class SimpleMailTest { publicstaticvoid main(String[] args) throws EmailException { SimpleEmail email = new SimpleEmail(); //设置发送主机的服务器地址 email.setHostName("smtp.163.com"); //设置收件人邮箱 email.addTo("[email protected]","bulktree"); //发件人邮箱 email.setFrom("[email protected]", "bulktree"); //如果要求身份验证,设置用户名、密码,分别为发件人在邮件服务器上注册的用户名和密码 email.setAuthentication("bulktree", "123456"); //设置邮件的主题 email.setSubject("Hello, This is My First Email Application"); //邮件正文消息 email.setMsg("I am bulktree This is JavaMail Application");[来源 www.iocblog.net] email.send(); System.out.println("The SimpleEmail send sucessful!!!"); } }
带附件邮件发送:
package com.bulktree.mail; import java.net.MalformedURLException; import java.net.URL; importorg.apache.commons.mail.EmailAttachment; import org.apache.commons.mail.EmailException; import org.apache.commons.mail.MultiPartEmail; publicclass AttachmentMailTest { publicstaticvoid main(String[] args) throws EmailException, MalformedURLException { // 创建一个Email附件 EmailAttachment emailattachment = newEmailAttachment(); emailattachment.setPath("/biao_05.jpg"); // emailattachment.setURL(new URL("http://www.blogjava.net/bulktree/picture/bulktree.jpg")); emailattachment.setDisposition(EmailAttachment.ATTACHMENT); emailattachment.setDescription("This is Smile picture"); emailattachment.setName("bulktree"); // 创建一个email MultiPartEmail multipartemail = new MultiPartEmail(); multipartemail.setHostName("smtp.163.com"); multipartemail.addTo("[email protected]", "bulktree"); multipartemail.setFrom("[email protected]", "bulktree"); multipartemail.setAuthentication("bulktree", "123456"); multipartemail.setSubject("This is a attachment Email"); multipartemail.setMsg("this a attachment Eamil Test"); //添加附件 multipartemail.attach(emailattachment); //发送邮件 multipartemail.send(); System.out.println("The attachmentEmail send sucessful!!!"); } }
邮件中文解码:str=new String(str.getBytes("8859_1"),"GBK");