邮件发送
一、邮件服务器与传输协议
- 要在网络上实现邮件功能,必须要有专门的邮件服务器。这些邮件服务器类似于现实生活中的邮局,它主要负责接收用户投递过来的邮件,并把邮件投递到邮件接收者的电子邮箱中。
- SMTP 服务器地址:一般是 smtp.xxx.com,比如 163 邮箱是 smtp.163.com,qq 邮箱是 smtp.qq.com。
- SMTP 协议
通常把处理用户 smtp 请求(邮件发送请求)的服务器称之为 SMTP 服务器(邮件发送服务器)。
- POP3 协议
通常把处理用户 pop3 请求(邮件接收请求)的服务器称之为 POP3 服务器(邮件接收服务器)。
二、Java 发送邮件
- 需要使用的 jar 包
- 代码实现
public class SendEmail {
public static void main(String[] args) throws Exception {
Properties prop = new Properties();
prop.setProperty("mail.host","smtp.qq.com"); // 设置qq邮件服务器
prop.setProperty("mail.transport.protocol","smtp"); // 邮件发送协议
prop.setProperty("mail.smtp.auth","true"); // 需要验证用户名密码
// 设置SSL加密 qq邮箱固定的
MailSSLSocketFactory sf = new MailSSLSocketFactory();
sf.setTrustAllHosts(true);
prop.put("mail.smtp.ssl.enable","true");
prop.put("mail.smtp.ssl.socketFactory",sf);
// 使用javamail发送邮箱的五个步骤
// 1. 创建定义整个应用程序所需要的环境信息的Session对象
Session session = Session.getDefaultInstance(prop, new Authenticator() {
@Override
protected PasswordAuthentication getPasswordAuthentication() {
// 发件人邮箱用户名,授权码
return new PasswordAuthentication("1289066006@qq.com","ltsoimozvswdbadf");
}
});
// 开启session的debug模式
session.setDebug(true);
// 2. 通过Session得到transport对象
Transport ts = session.getTransport();
// 3. 使用邮箱的用户名和授权码连上服务器
ts.connect("smtp.qq.com", "1289066006@qq.com", "ltsoimozvswdbadf");
// 4. 创建邮件
MimeMessage message = new MimeMessage(session); //创建邮件对象
message.setFrom(new InternetAddress("1289066006@qq.com")); // 指定邮件的发件人
message.setRecipient(Message.RecipientType.TO, new InternetAddress("1289066006@qq.com")); // 指定收件人
message.setSubject("简单邮件"); // 设置邮件的标题
message.setContent("你好啊!","text/html;charset=UTF-8");
// 5. 发送邮件
ts.sendMessage(message,message.getAllRecipients());
ts.close();
}
}
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于