首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网络技术 > 网络基础 >

apache commons-email 发邮件效能

2012-12-21 
apache commons-email 发邮件功能浅试一下apache commons-email.jar 发邮件的功能,代码暂时记录在此,代码

apache commons-email 发邮件功能
浅试一下apache commons-email.jar 发邮件的功能,代码暂时记录在此,代码还没有整理过,只是弄了几个方法测试了一下。包和文档可以在此找到
http://commons.apache.org/email/
图如下:[img]


[/img]

package com.mail.test;import java.net.MalformedURLException;import java.net.URL;import org.apache.commons.mail.DefaultAuthenticator;import org.apache.commons.mail.Email;import org.apache.commons.mail.EmailAttachment;import org.apache.commons.mail.EmailException;import org.apache.commons.mail.HtmlEmail;import org.apache.commons.mail.MultiPartEmail;import org.apache.commons.mail.SimpleEmail;public class TestSendMail {//发送文本邮件public static void sendTextMail(){Email email = new SimpleEmail();email.setHostName("smtp.qq.com");       // email.setHostName("smtp.163.com");email.setSmtpPort(25);email.setAuthenticator(new DefaultAuthenticator("123456@qq.com", "*******"));email.setTLS(true);try {email.setFrom("123456@qq.com");email.setMsg("This is a test mail__common_email");email.addTo("bill@126.com");email.setSubject("TestMail文本邮件");email.send();} catch (EmailException e) {e.printStackTrace();}}//发送带附件的邮件public static void sendAttachmentMail(){ // Create the attachment  EmailAttachment attachment = new EmailAttachment();  attachment.setPath("D://lib/activation.jar");  //也可以以网络的方式//        attachment.setURL(new URL("http://www.apache.org/images/asf_logo_wide.gif"));  attachment.setDisposition(EmailAttachment.ATTACHMENT);  attachment.setDescription("发给你的jar包");  attachment.setName("jar包");  // Create the email message  MultiPartEmail email = new MultiPartEmail();  email.setHostName("smtp.qq.com");  email.setSmtpPort(25);  email.setAuthenticator(new DefaultAuthenticator("123456@qq.com", "******"));  email.setTLS(true);    try {    //发件人地址     发件人昵称email.setFrom("123456@qq.com","发件人昵称");   //也可以不要第二个参数email.addTo("bill@126.com","收件人昵称");      email.setSubject("The jar");                   //标题    email.setMsg("Here is the jar you wanted");    //邮件内容     // add the attachment    email.attach(attachment);                      //附件    email.send();} catch (EmailException e) {// TODO Auto-generated catch blocke.printStackTrace();}}//发送HTML的邮件public static void sendHtmlEmail(){  // Create the email message  HtmlEmail email = new HtmlEmail();    email.setHostName("smtp.qq.com");  email.setSmtpPort(25);  email.setAuthenticator(new DefaultAuthenticator("123456@qq.com", "*******"));  email.setTLS(true);    try {email.addTo("bill@126.com", "收件人昵称");// 发件人地址 发件人昵称email.setFrom("123456@qq.com", "发件人昵称"); // 也可以不要第二个参数    email.setSubject("The jar");                   //标题email.setMsg("This is a test mail__common_email");// embed the image and get the content idURL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");String cid = email.embed(url, "appach logo");// set the html messageemail.setHtmlMsg("<html><a href='http://www.baidu.com'>baidu.com</a> <img src="cid:" + cid+ ""></html>");// set the alternative messageemail.setTextMsg("Your email client does not support HTML messages");  // send the email  email.send();} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (EmailException e) {// TODO Auto-generated catch blocke.printStackTrace();}}public  static void main(String[] args) {sendTextMail();//sendAttachmentMail();//sendHtmlEmail();}}


有两个小问题还没整就要睡觉了:1,我用163作发送,总是验证不通过,还没抽空找原因,用QQ就可以发送,但我不用appach的邮件的功能,用其他就可以发过去,当然不会是用户名密码等没有输对,也不是什么服务没开的问题。
2,发送内容的编码还没整。如果发送带附件的邮件,下载时附件没有默认的后辍名,保存时要手功改保存类型。不知道怎么整。
如果有大侠路过指点一下。 1 楼 damoo 2011-04-11   1、有些邮箱需要在你的邮箱着那个设置开启smtp、pop3服务才能使用,比方说我用的sina邮箱
2、乱码问题可以用mail.setCharacter("utf-8")解决
3、下载附件的扩展名问题我还没去整

热点排行