1.先导两个包,activation.jar 和 mail.jar,
2.设置自己的QQ邮箱,需要生成一个秘钥,
在这个选项下找到这个地方,全部开启,需要短信验证四次,然后生成一个秘钥,记录下来就好
准备工作就完成了,下来看一下代码:
package com.zhang.test.tools;
import javax.mail.Message;
import javax.mail.MessagingException;
import javax.mail.Session;
import javax.mail.Transport;
import javax.mail.internet.AddressException;
import javax.mail.internet.InternetAddress;
import javax.mail.internet.MimeMessage;
import java.util.Date;
import java.util.Properties;
public class 发送邮件 {
// 发件人的邮箱地址和密码
public static String sendEmailAccount = "我自己的QQ邮箱@qq.com";
//如果有授权码,此处填写授权码
public static String sendEmailPassword = "这里就是上边生成的那个秘钥,切记保密";
// 发件人邮箱的 SMTP 服务器地址, 可以登录web邮箱查询
public static String sendEmailSMTPHost = "smtp.qq.com";
// 收件人邮箱地址,这里自己给自己发也是可以的
public static String receiveMailAccount = "peter447@qq.com";
public static void main(String[] args) throws Exception {
// 参数配置
Properties props = new Properties();
props.setProperty("mail.transport.protocol", "smtp");
props.setProperty("mail.smtp.host", sendEmailSMTPHost);
props.setProperty("mail.smtp.auth", "true");
props.setProperty("mail.smtp.socketFactory.class", "javax.net.ssl.SSLSocketFactory");
props.setProperty("mail.smtp.port", "465");
props.setProperty("mail.smtp.socketFactory.port", "465");
// 根据配置创建会话对象, 用于和邮件服务器交互
Session session = Session.getDefaultInstance(props);
session.setDebug(true); // 设置为debug模式, 可以查看详细的发送 log
// 创建一封邮件
Message message = createMailMessage(session, sendEmailAccount, receiveMailAccount);
// 根据 Session 获取邮件传输对象
Transport transport = session.getTransport();
// 使用 邮箱账号 和 密码 连接邮件服务器, 这里认证的邮箱必须与 message 中的发件人邮箱一致, 否则会报错
transport.connect(sendEmailAccount, sendEmailPassword);
// 发送邮件
transport.sendMessage(message, message.getAllRecipients());
// 关闭连接
transport.close();
}
/**
* 创建一封简单邮件
* @throws MessagingException
* @throws AddressException
*/
private static Message createMailMessage(Session session, String sendMail, String receiveMail) throws AddressException, MessagingException {
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(sendMail));
message.setRecipient(MimeMessage.RecipientType.TO, new InternetAddress(receiveMail));
// 设置邮件标题
message.setSubject("这是我的测试邮件");
// 设置邮件正文
message.setText("《基度山伯爵》是十九世纪法国著名作家大仲马的名著。小说描写水手邓蒂斯善良无辜遭受陷害,囚居十余年,"
+ "九死一生。脱狱后报善惩恶。情节曲折,场面惊险,人物栩栩如生,故事起伏跌宕,宛如天外飞来,引人人胜。"
+ "黑牢生活绘声绘色;脱狱后报善惩恶,大快人心。写对三个恶人的复仇,各有不同,马瑟夫(即弗南)夺人之妻,"
+ "终被妻儿所弃,落得自杀身死。邓格拉司谋人财产,终遭破产,陷于饥饿与潦倒之中。维尔福下井投石,"
+ "损人利己,结果妻儿双双服毒,自己也发了疯。全书贯穿着善良战胜邪恶的思想。");
message.setSentDate(new Date());
//保存设置
message.saveChanges();
return message;
}
}
运行起来,出现这个就OK了,
检查一下目标邮箱:
大功告成