MailUtil 邮件发送工具类

d

mail.properties

#邮件服务器是否需要验证用户存在与否 ,使用“true”、“false”、“0”、“1”
mail.smtp.auth=true
#邮件服务器使用的协议
mail.transport.protocol=smtp
#邮件服务器地址
mail.smtp.host=smtp.126.com
#邮件服务器使用的端口
mail.smtp.port=25
#默认服务器端用户名
mail.host.user=*****
#默认服务器用户密码
mail.host.user.password=****
#默认主机地址
mail.host.user.from=****@126.com

 MailUtil.java

import java.io.File;
import java.util.Date;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Locale;
import java.util.Map;
import java.util.Properties;
import java.util.ResourceBundle;

import javax.activation.DataHandler;
import javax.activation.DataSource;
import javax.activation.FileDataSource;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Multipart;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeBodyPart;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMultipart;

import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;

/**
 * 邮件发送工具
 * 
 * @author linzq
 * 
 */
public class MailUtil {

	public static boolean sendMail(String to, String subject, String content)
			throws AddressException, MessagingException {
		Map<String, String> fileMap = new HashMap<String, String>();
		ResourceBundle rb = ResourceBundle.getBundle("email",
				Locale.getDefault());
		Boolean isAutheticate = BooleanUtils.toBooleanObject(rb
				.getString("mail.smtp.auth"));
		String protocol = rb.getString("mail.transport.protocol");
		String host = rb.getString("mail.smtp.host");
		Integer port = NumberUtils.toInt(rb.getString("mail.smtp.port"), 25);
		String user = rb.getString("mail.host.user");
		String password = rb.getString("mail.host.user.password");
		String from = rb.getString("mail.host.user.from");
		return sendMail(isAutheticate, protocol, host, port, user, password,
				from, to, subject, content, fileMap);
	}

	/**
	 * @param isAutheticate
	 *            邮件务器是否验证用户
	 * @param protocol
	 *            协认
	 * @param host
	 *            邮件务器地址
	 * @param port
	 *            端口
	 * @param user
	 *            用户
	 * @param password
	 *            密码
	 * @param from
	 *            邮件发送地址
	 * @param to
	 *            邮件接收地址
	 * @param subject
	 *            标题
	 * @param content
	 *            内容
	 * @param filePathMap
	 *            附件,它是一个“文件名=全路径地址”的映射
	 * @return
	 * @throws AddressException
	 * @throws MessagingException
	 */
	public static boolean sendMail(Boolean isAutheticate, String protocol,
			String host, Integer port, String user, String password,
			String from, String to, String subject, String content,
			Map<String, String> filePathMap) throws AddressException,
			MessagingException {
		boolean bool = false;
		Properties p = new Properties();
		p.put("mail.smtp.auth", isAutheticate.toString());
		p.put("mail.transport.protocol", protocol);
		p.put("mail.smtp.host", host);
		p.put("mail.smtp.port", port);
		// 建立会话
		Session session = Session.getInstance(p);
		// 建立消息
		Message msg = new MimeMessage(session);
		// 设置发件人
		msg.setFrom(new InternetAddress(from));
		// 收件人
		msg.setRecipient(Message.RecipientType.TO, new InternetAddress(to));
		// 发送日期
		msg.setSentDate(new Date());
		// 主题
		msg.setSubject(subject);
		// 设置邮件内容,作为Multipart对象的一部分
		MimeBodyPart mbp = new MimeBodyPart();
		mbp.setText(content);
		Multipart mulp = new MimeMultipart();
		mulp.addBodyPart(mbp);
		// 文件件名
		String fileName = null;
		// 全路径
		String fileFullPath = null;
		DataSource source = null;
		if (filePathMap != null && filePathMap.size() > 0) {
			Iterator it = filePathMap.entrySet().iterator();
			while (it.hasNext()) {
				// 为每个附件做为Multipart对象的一部分
				mbp = new MimeBodyPart();
				Map.Entry<String, String> entry = (Map.Entry) it.next();
				fileName = entry.getKey();
				fileFullPath = entry.getValue();
				if (fileName == null || fileName.equals("")
						|| fileFullPath == null || fileFullPath.equals("")) {
					continue;
				}
				File f = new File(fileFullPath);
				if (!f.exists()) {
					continue;
				}
				source = new FileDataSource(fileFullPath);
				mbp.setDataHandler(new DataHandler(source));
				mbp.setFileName(fileName);
				mulp.addBodyPart(mbp);
			}
		}
		// 设置信息内容,将Multipart 对象加入信息中
		msg.setContent(mulp);
		// 登陆邮件服务器进行用户验证
		Transport tran = session.getTransport(protocol);
		tran.connect(host, user, password);
		// 发送
		tran.sendMessage(msg, msg.getAllRecipients());
		bool = true;
		return bool;
	}

	/**
	 * @param args
	 * @throws MessagingException
	 * @throws AddressException
	 */
	public static void main(String[] args) throws AddressException,
			MessagingException {
		// 调试使用
		Map map = new HashMap<String, String>();
		map.put("jasper-el.jar", "D:\\apache-tomcat-6.0.29\\lib\\jasper-el.jar");
		map.put("RUNNING.txt", "D:\\apache-tomcat-6.0.29\\RUNNING.txt");
		//sendMail(true, "smtp", "smtp.126.com", 25, "con", "***",
		//		"[email protected]", "[email protected]", "答话稀有", "快点下在", map);
		sendMail("[email protected]", "答话稀有", "快点下在");

	}
}

 dd

 

你可能感兴趣的:(apache,tomcat,F#)