JavaMail 通过QQ邮箱发送邮件

您需要把依赖的 JavaMail mail.jarmail.zip 添加到项目

工具类

import java.security.GeneralSecurityException;
import java.util.Properties;

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

import com.sun.mail.util.MailSSLSocketFactory;

public class MailUtils {

	/**
	 * 发送邮件
	 * @param email 收件人邮箱
	 * @param emailMsg 发送的内容
	 * @throws AddressException
	 * @throws MessagingException
	 * @throws GeneralSecurityException
	 */
	public static void sendMail(String email, String emailMsg)
			throws AddressException, MessagingException, GeneralSecurityException {
			
		// 1.创建一个程序与邮件服务器会话对象 Session
		Properties props = new Properties();
		props.setProperty("mail.transport.protocol", "SMTP");
		props.setProperty("mail.smtp.host", "smtp.qq.com");
		props.setProperty("mail.smtp.auth", "true");// 指定验证为true
		
		//  关于QQ邮箱,还要设置SSL加密,加上以下代码即可
		MailSSLSocketFactory sf = new MailSSLSocketFactory();
	        sf.setTrustAllHosts(true);
	        props.put("mail.smtp.ssl.enable", "true");
	        props.put("mail.smtp.ssl.socketFactory", sf);

		// 创建验证器
		Authenticator auth = new Authenticator() {
			public PasswordAuthentication getPasswordAuthentication() {
			//发信人的账号 密码
			return new PasswordAuthentication(gwk_87@qq.com, smtp的验证码);
			}
		};

		Session session = Session.getInstance(props, auth);

		// 2.创建一个Message,它相当于是邮件内容
		
		// 创建默认的 MimeMessage 对象
		Message message = new MimeMessage(session);
		
		// 设置发送者
		message.setFrom(new InternetAddress(gwk_87@qq.com)); 
		
		// 设置发送方式与接收者
		message.setRecipient(Message.RecipientType.TO, new InternetAddress(email)); 

		// 设置消息头
		message.setSubject("请激活邮件以完成注册");
		
		// 设置消息体 -- 普通文字
                // message.setText(emailMsg);
		
		//设置消息体 -- 发送 HTML 消息
		message.setContent("这是一封激活邮件,<br>"
				+ "<a href='#'>请访问点击,激活账号</a>", "text/html;charset=utf-8");

		// 3.创建 Transport用于将邮件发送
		Transport.send(message);
	}
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注