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", "***",
		//		"con@126.com", "con@163.com", "答话稀有", "快点下在", map);
		sendMail("conkeyn@163.com", "答话稀有", "快点下在");

	}
}

 dd

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
/* * JCatalog Project */ package com.hexiang.utils; import java.util.List; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.Properties; import javax.mail.Session; import javax.mail.Transport; import javax.mail.Message; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import com.hexiang.exception.CatalogException; /** * Utility class to send email. * * @author <a href="380595305@qq.com">hexiang</a> */ public class EmailUtil { //the logger for this class private static Log logger = LogFactory.getLog("com.hexiang.util.EmailUtil"); /** * Send email to a single recipient. * * @param smtpHost the SMTP email server address * @param senderAddress the sender email address * @param senderName the sender name * @param receiverAddress the recipient email address * @param sub the subject of the email * @param msg the message content of the email */ public static void sendEmail(String smtpHost, String senderAddress, String senderName, String receiverAddress, String sub, String msg) throws CatalogException { List<String> recipients = new ArrayList<String>(); recipients.add(receiverAddress); sendEmail(smtpHost, senderAddress, senderName, recipients, sub, msg); } /** * Send email to a list of recipients. * * @param smtpHost the SMTP email server address * @param senderAddress the sender email address * @param senderName the sender name * @param recipients a list of receipients email addresses * @param sub the subject of the email * @param msg the message content of the email */ public static void sendEmail(String smtpHost, String senderAddress, String senderName, List<String> recipients, String sub, String msg) throws CatalogException { if (smtpHost == null) { String errMsg = "Could not send email: smtp host address is null"; logger.error(errMsg); throw new CatalogException(errMsg); } try { Properties props = System.getProperties(); props.put("mail.smtp.host", smtpHost); Session session = Session.getDefaultInstance(props, null ); MimeMessage message = new MimeMessage( session ); message.addHeader("Content-type", "text/plain"); message.setSubject(sub); message.setFrom(new InternetAddress(senderAddress, senderName)); for (Iterator<String> it = recipients.iterator(); it.hasNext();) { String email = (String)it.next(); message.addRecipients(Message.RecipientType.TO, email); } message.setText(msg); message.setSentDate( new Date() ); Transport.send(message); } catch (Exception e) { String errorMsg = "Could not send email"; logger.error(errorMsg, e); throw new CatalogException("errorMsg", e); } } }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值