[JAVA实时屏幕监控]JAVA发送邮件

 

JAVA发送邮件

 

描述:利用commons-email-1.2和javamail-1.4.4类库。

 

 

/**
 * Copyright (c) 2011 Trusted Software and Mobile Computing(TSMC)
 * All right reserved.
 *
 * Created on Nov 1, 2011 8:12:42 PM
 * http://jarg.iteye.com/
 * Author: Jarg Yee <[email protected]>
 */
package com.iteye.jarg.monitor.util;

import java.io.File;
import java.util.List;

import org.apache.commons.mail.EmailException;
import org.apache.commons.mail.HtmlEmail;

import com.iteye.jarg.monitor.base.Config;

/**
 * TODO 邮件工具类
 */
public class MailUtil
{

	/** 邮件句柄 */
	private static HtmlEmail email = null;
	
	/**
	 * 初始化邮件工具类
	 * @throws EmailException 
	 * */
	public static void initMail()
	{
		
		/** 邮件句柄 */
		email = new HtmlEmail();
		
		email.setHostName(Config.aHostName);
		email.setTLS(Config.withTLS);
		email.setSslSmtpPort(Config.sslSmtpPort); // 设定SSL端口
		
		email.setAuthentication(Config.SENDER, Config.PASSWORD); // 用户名和密码
		
		
////////////////////////////////////////////////////////////////////////////
		
		try
		{
			email.addTo(Config.RECEIVER);		// 接收方
			email.setFrom(Config.SENDER);		// 发送方
		}
		catch (EmailException e)
		{
//			e.printStackTrace();
			System.out.println("ERROR:添加接收方或发送方失败.");
		}
		
		email.setCharset(Config.CHARSET);
		
	}
	
	
	/**
	 * 发送带图片的网页邮件
	 * 邮件发送send()是一个线程,未发送成功,会一直停留在当前语句,直到发送失败.
	 * 
	 * 每次调用此函数发邮件之前,都需要调用initMail()方法,建立连接.
	 * */
	public static void sendSnapshots(List<File> snapshots)
	{
		StringBuffer sendedList = new StringBuffer();	// 已发邮件清单
		StringBuffer content = new StringBuffer();		// 邮件内容
		try
		{
			/**
			 * 构建邮件内容
			 * */
			content.append("<html><body>");
			content.append("实时屏幕监控 - 截图数目:").append(snapshots.size());
			for(int i=0; i<snapshots.size(); i++)
			{
				content.append("<p style='margin-top:20px;'>");
				content.append("<h3>").append(snapshots.get(i).getName()).append("</h3>");
				content.append("<img src=cid:").append(email.embed(snapshots.get(i))).append(">");
				content.append("</p>");
				
				sendedList = sendedList.append(snapshots.get(i).getName()).append("\t");
				if((i+1)%5 == 0)	// 每隔5个记录,换行一次
					sendedList.append("\n");
			}
			content.append("</body></html>");
			
			email.setSubject(Config.SUBJECT + Config.fromString  + " At " + DateUtil.getNowDateTimeString()); 	// 设置主题
			email.setHtmlMsg(content.toString());	// 设置html邮件内容

			email.send();		// 发送失败会报EmailException错误
			
			System.out.println("*********** 成功发送邮件 ***********");
			System.out.println(sendedList.toString());
			
		}
		catch (EmailException e)
		{
			System.out.println("ERROR:邮件发送失败.");
			e.printStackTrace();
		}
		
	}
	
}
 

 

你可能感兴趣的:(java)