`
jiangnan2112
  • 浏览: 120320 次
  • 性别: Icon_minigender_1
  • 来自: 重庆
社区版块
存档分类
最新评论

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 block
			e.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 id
			URL url = new URL("http://www.apache.org/images/asf_logo_wide.gif");
			String cid = email.embed(url, "appach logo");
			// set the html message
			email.setHtmlMsg("<html><a href='http://www.baidu.com'>baidu.com</a> <img src=\"cid:" + cid
					+ "\"></html>");

			// set the alternative message
			email.setTextMsg("Your email client does not support HTML messages");

			  // send the email
			  email.send();
		} catch (MalformedURLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (EmailException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	public  static void main(String[] args) {
		sendTextMail();
		//sendAttachmentMail();
		//sendHtmlEmail();
	}

	
}



有两个小问题还没整就要睡觉了:1,我用163作发送,总是验证不通过,还没抽空找原因,用QQ就可以发送,但我不用appach的邮件的功能,用其他就可以发过去,当然不会是用户名密码等没有输对,也不是什么服务没开的问题。
2,发送内容的编码还没整。如果发送带附件的邮件,下载时附件没有默认的后辍名,保存时要手功改保存类型。不知道怎么整。
如果有大侠路过指点一下。
  • 大小: 15.2 KB
分享到:
评论
2 楼 youyoufufu 2013-10-29  
扩展名:

emailattachment.setName("my picture.jpg");

带扩展名即可。
1 楼 damoo 2011-04-11  
1、有些邮箱需要在你的邮箱着那个设置开启smtp、pop3服务才能使用,比方说我用的sina邮箱
2、乱码问题可以用mail.setCharacter("utf-8")解决
3、下载附件的扩展名问题我还没去整

相关推荐

Global site tag (gtag.js) - Google Analytics