工具类:java 邮件发送

package com.dgy.demo;

import java.util.Calendar;
import java.util.Properties;

import javax.mail.Authenticator;
import javax.mail.MessagingException;
import javax.mail.PasswordAuthentication;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import javax.mail.internet.MimeMessage.RecipientType;

/**
 * 
 * 邮件发送工具类
 * 
 * @author dgy
 *
 */
public class E_MailUtil {

	@SuppressWarnings("static-access")
	/**
	 * 
	 * @param smtpHost
	 *            为邮件smtp地址 QQ:smtp.qq.com
	 * @param from
	 *            发送者账户
	 * @param fromUserPassword
	 *            发送者密码
	 * @param to
	 *            发送给谁
	 * @param subject
	 *            邮件主题
	 * @param messageText
	 *            邮件内容
	 * @param messageType
	 *            邮件类型
	 * @throws MessagingException
	 */
	public boolean sendMessage(String smtpHost, String from, String fromUserPassword, String to, String subject,
			String messageText, String messageType) throws MessagingException {
		try {
			// 第一步:配置javax.mail.Session对象
			Properties props = new Properties();
			props.put("mail.smtp.host", smtpHost);
			props.put("mail.smtp.starttls.enable", "true");// 使用 STARTTLS安全连接
			// props.put("mail.smtp.port", "25"); //google使用465或587端口
			props.put("mail.smtp.auth", "true"); // 使用验证
			// props.put("mail.debug", "true");
			Session mailSession = Session.getInstance(props, new MyAuthenticator(from, fromUserPassword));

			// 第二步:编写消息
			InternetAddress fromAddress = new InternetAddress(from);
			InternetAddress toAddress = new InternetAddress(to);

			MimeMessage message = new MimeMessage(mailSession);

			message.setFrom(fromAddress);
			message.addRecipient(RecipientType.TO, toAddress);

			message.setSentDate(Calendar.getInstance().getTime());
			message.setSubject(subject);
			message.setContent(messageText, messageType);

			// 第三步:发送消息
			Transport transport = mailSession.getTransport("smtp");
			transport.connect(smtpHost, from, fromUserPassword);
			transport.send(message, message.getRecipients(RecipientType.TO));
			return true;
		} catch (Exception e) {
			return false;
		}
	}

	public static void main(String[] args) {
		try {
			E_MailUtil em = new E_MailUtil();
			boolean flag = em.sendMessage("smtp.qq.com", "[email protected]", "*******", "[email protected]", "你好", "有意联系1254",
					"text/html;charset=gb2312");
			System.out.println(flag);
		} catch (MessagingException e) {
			e.printStackTrace();
		}
	}
}

/**
 * 
 * 密码验证类。 javax.mail.Authenticator是一个抽象类,
 * 我们要写MyAuthenticator的密码验证类,该类继承Authenticator实现
 *
 */
class MyAuthenticator extends Authenticator {
	String userName = "";
	String password = "";

	public MyAuthenticator() {
	}

	public MyAuthenticator(String userName, String password) {
		this.userName = userName;
		this.password = password;
	}

	protected PasswordAuthentication getPasswordAuthentication() {
		return new PasswordAuthentication(userName, password);
	}
}


你可能感兴趣的:(工具类:java 邮件发送)