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

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));
// 设置多个收件人
// 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");
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值