您的位置:首页 > 编程语言 > Java开发

Javax Mail发送邮件完整代码示例

2016-03-24 11:05 531 查看
package test;

import javax.mail.Authenticator;

import javax.mail.Message;

import javax.mail.PasswordAuthentication;

import javax.mail.Session;

import javax.mail.Transport;

import javax.mail.internet.InternetAddress;

import javax.mail.internet.MimeMessage;

import java.util.Date;

import java.util.Properties;

public class TestMail {
/**
* Description:发送邮件方式一
* @param fromMail
发送者邮箱
* @param user
用户名
* @param password
密码
* @param toMail
接收者邮箱
* @param mailTitle
邮件主题
* @param mailContent
邮件内容
* @throws Exception
*/
public static void sendMail(String fromMail, final String user, final String password, String toMail,
String mailTitle, String mailContent) throws Exception {
// 可以加载一个配置文件
Properties props = new Properties();
// 设置邮件服务器主机名-这里使用smtp:简单邮件传输协议
props.put("mail.smtp.host", "smtp.163.com");
// 设置发送服务器是否需要身份验证
props.put("mail.smtp.auth", "true");
// 设置发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
// 开启debug调试
props.setProperty("mail.debug", "true");

// 根据属性生成一个邮件会话
Session session = Session.getInstance(props);

// session.setDebug(true);//同props.setProperty("mail.debug", "true");

// 创建邮件对象
MimeMessage message = new MimeMessage(session);// 由邮件会话新建一个消息对象
// 设置发件人的地址
message.setFrom(new InternetAddress(fromMail));

// 设置单个收件人,并设置其接收类型为TO
message.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail));
// 设置多个收件人
// message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("java_mail_002@163.com,java_mail_003@163.com"));

// 设置主题
message.setSubject(mailTitle);

// 设置信件内容
// message.setText(mailContent); // 设置发送 纯文本 邮件
message.setContent(mailContent, "text/html;charset=gbk"); // 设置发送HTML邮件,内容样式比较丰富

message.setSentDate(new Date());// 设置发信时间
message.saveChanges();// 存储邮件信息

// 发送邮件
Transport transport = session.getTransport();// 如果props中protocol是smtp,则等价于Transport transport = session.getTransport("smtp");
transport.connect(user, password);
transport.sendMessage(message, message.getAllRecipients());// 发送邮件,其中第二个参数是所有已设好的收件人地址
transport.close();
}

/**
* Description:发送邮件方式二
* @param fromMail
发送者邮箱
* @param user
用户名
* @param password
密码
* @param toMail
接收者邮箱
* @param mailTitle
邮件主题
* @param mailContent
邮件内容
* @throws Exception
*/
public static void sendMail2(String fromMail, final String user, final String password, String toMail,
String mailTitle, String mailContent) throws Exception {
// 可以加载一个配置文件
Properties props = new Properties();
// 设置邮件服务器主机名-这里使用smtp:简单邮件传输协议
props.put("mail.smtp.host", "smtp.163.com");
// 设置发送服务器是否需要身份验证
props.put("mail.smtp.auth", "true");
// 设置发送邮件协议名称
props.setProperty("mail.transport.protocol", "smtp");
// 开启debug调试
props.setProperty("mail.debug", "true");

// 根据属性生成一个邮件会话
Session session = Session.getInstance(props, new Authenticator() {
// 在session中设置账户信息,Transport发送邮件时会使用
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication(user, password);
}
});

// session.setDebug(true);
// //有他会打印一些调试信息。同props.setProperty("mail.debug", "true");

// 创建邮件对象
MimeMessage message = new MimeMessage(session);// 由邮件会话新建一个消息对象
// 设置发件人的地址
message.setFrom(new InternetAddress(fromMail));

// 设置单个收件人,并设置其接收类型为TO
message.setRecipient(Message.RecipientType.TO, new InternetAddress(toMail));
// 设置
4000
多个收件人
// message.setRecipients(Message.RecipientType.TO,InternetAddress.parse("java_mail_002@163.com,java_mail_003@163.com"));

// 设置主题
message.setSubject(mailTitle);

// 设置信件内容
// message.setText(mailContent); // 设置发送 纯文本 邮件
message.setContent(mailContent, "text/html;charset=gbk"); // 设置发送HTML邮件,内容样式比较丰富

// 设置发信时间
message.setSentDate(new Date());
// 存储邮件信息
message.saveChanges();
// 发送邮件
Transport.send(message);
}

public static void main(String[] args) throws Exception {

sendMail("发送者邮箱", "用户名", "密码", "发送的邮箱", "测试",
"内容1");

sendMail2("发送者邮箱", "用户名", "密码", "发送的邮箱", "测试",
"内容2");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javax mail