发新话题
移动帖子 加入精华 加入置顶 加入收藏 关注此帖

用commons-email-1.1.jar实现发邮件功能:





用commons-email-1.1.jar实现发邮件功能:

http://www.blogjava.net/bulktree/archive/2008/04/07/191170.html

今天在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;

publicclass SimpleMailTest {

    publicstaticvoid main(String[] args) throws EmailException {

       SimpleEmail email = new SimpleEmail();

       //设置发送主机的服务器地址

       email.setHostName("smtp.163.com");

       //设置收件人邮箱

       email.addTo("bulktree@126.com","bulktree");

       //发件人邮箱

       email.setFrom("bulktree@163.com", "bulktree");

       //如果要求身份验证,设置用户名、密码,分别为发件人在邮件服务器上注册的用户名和密码

       email.setAuthentication("bulktree", "123456");

       //设置邮件的主题

       email.setSubject("Hello, This is My First Email Application");

       //邮件正文消息

       email.setMsg("I am bulktree This is JavaMail Application");

       email.send();

       System.out.println("The SimpleEmail send sucessful!!!");

    }

}


带附件邮件发送:

package com.bulktree.mail;

import java.net.MalformedURLException;

import java.net.URL;

import org.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 = new EmailAttachment();

       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("bulktree@126.com", "bulktree");

       multipartemail.setFrom("bulktree@163.com", "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!!!");

    }


}
快乐渡过每一天,减肥坚持每一天



编辑 回复 快速回复 TOP


Re:用commons-email-1.1.jar实现发邮件功能:

测试一下,发现出现一下异常:
Exception in thread "main" org.apache.commons.mail.EmailException: Sending the email to the following server failed : smtp.163.com:25
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1138)
at org.apache.commons.mail.Email.send(Email.java:1163)
at zj.apache.email.demo.SimpleMailTest.main(SimpleMailTest.java:21)
Caused by: javax.mail.AuthenticationFailedException
at javax.mail.Service.connect(Service.java:319)
at javax.mail.Service.connect(Service.java:169)
at javax.mail.Service.connect(Service.java:118)
at javax.mail.Transport.send0(Transport.java:188)
at javax.mail.Transport.send(Transport.java:118)
at org.apache.commons.mail.Email.sendMimeMessage(Email.java:1128)
... 2 more
编辑 回复 快速回复 TOP
发新话题