温馨提示:
下面没使用框架发送邮件,有利于理解源码,以后用SpringBoot比这个简单多了,框架都帮你封装好了
发送邮件前必须要开启下图协议:这里拿QQ邮箱举例,其他的也都在设置里面
public class Mail {
public static void main(String[] args) throws Exception {
Properties properties = new Properties();
properties.setProperty("mail.host", "smtp.qq.com"); //设置qq服务器发送
properties.setProperty("mail.transport.protocol", "smtp"); //邮件发送协议
properties.setProperty("mail.smtp.auth", "true"); //要验证用户名和密码
//QQ邮箱还设置了ssl加密,这个有点像MySQL的安全连接,一般大厂才会有
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
properties.put("mail.smtp.ssl.enable", "true");
properties.put("mail.smtp.ssl.socketFactory", sf);
//以上准备工作完成,下面是使用java发送文件的五个步骤
//1、创建整个应用程序才需要的session对象,QQ这种大厂才有
Session session = Session.getDefaultInstance(properties, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
return new PasswordAuthentication("1479461930@qq.com", "授权码");
}
});
//2、通过session获取transport对象
Transport transport = session.getTransport();
session.setDebug(true);
//3、使用邮件的用户名和授权码连接上服务器
transport.connect("smtp.qq.com", "1479461930@qq.com", "授权码");
//4、创建邮件写邮件,注意传递session
MimeMessage message = new MimeMessage(session);
//指明邮件的发送人
message.setFrom(new InternetAddress("1479461930@qq.com"));
//邮件的接收人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("1479461930@qq.com"));
//邮件的标题
message.setSubject("只包含文本的简单文件");
//邮件的内容
message.setContent("<h3 style=\"color: green\">不要欺骗自己,砥砺前行!</h3>", "text/html;charset=utf-8");
//5、发送邮件
transport.sendMessage(message, message.getAllRecipients());
//6、关闭连接
transport.close();
}
}
以后使用框架慢慢完善!
原文:https://www.cnblogs.com/bingstudy/p/12884809.html