•  

java mail 通过SMTP发送邮件的例子

2017-12-09

/**
 * @desc
 * @2016-11-10
 * @author jiangfl
 * @Copyright:Copyright ShenZhen SL Software Corporation
 */
package com.sl.basic.mail.test;

import java.util.Properties;

import javax.mail.Authenticator;
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;

/**
 * @desc
 * @2016-11-10
 * @author jiangfl
 * @Copyright:Copyright ShenZhen SL Software Corporation
 */
public class Test_163 {
	static Properties props = new Properties();
	public static void mail() throws Exception {
		// 创建Properties 类用于记录邮箱的一些属性

		// 表示SMTP发送邮件,必须进行身份验证
		props.put("mail.smtp.auth", "true");
		// 此处填写SMTP服务器
		props.put("mail.smtp.host", "smtp.163.com");
		// 端口号,QQ邮箱给出了两个端口,但是另一个我一直使用不了,所以就给出这一个465
		props.put("mail.smtp.port", "25");
		// 此处填写你的账号
		props.put("mail.user", "XXXXXX");//邮箱账号
		// 此处的密码就是前面说的16位STMP口令
		props.put("mail.password", "*******");//授权码(有的是账户密码)

		// 构建授权信息,用于进行SMTP进行身份验证
		Authenticator authenticator = new Authenticator() {

			protected PasswordAuthentication getPasswordAuthentication() {
				// 用户名、密码
				String userName = props.getProperty("mail.user");
				String password = props.getProperty("mail.password");
				return new PasswordAuthentication(userName, password);
			}
		};
		// 使用环境属性和授权信息,创建邮件会话
		Session mailSession = Session.getInstance(props, authenticator);
		// 创建邮件消息
		MimeMessage message = new MimeMessage(mailSession);
		// 设置发件人
		InternetAddress form = new InternetAddress(props.getProperty("mail.user"));
		message.setFrom(form);

		// 设置收件人的邮箱
		InternetAddress to = new InternetAddress("xxx@qq.com");
		message.setRecipient(RecipientType.TO, to);

		// 设置邮件标题
		message.setSubject("测试邮件");

		// 设置邮件的内容体
		message.setContent("这是一封测试邮件-666", "text/html;charset=UTF-8");

		// 最后当然就是发送邮件啦
		Transport.send(message);
	}

	public static void main(String[] args) {
		try {
			mail();
		} catch (Exception e) {
			e.printStackTrace();
		}
	}
}
申明:本文受法律保护,未经作者同意不得用于商业用途,如转载请说明出处!
评论