概述
电子邮箱就是在邮箱服务器上开启的一块空间。邮箱服务器就是一个安装在计算机的服务软件,提供有邮件服务。html
邮箱的发送流程
如今tom要发送一份邮件给jerry,首先tom将邮件经过客户端链接本身设置发送邮件服务器
,经过邮件发送服务器
将邮件发给了jerry的发送邮件服务器
中。 jerry也是经过客户端链接本身的收件服务器
,而后收件服务器
从jerry的发件服务器中获取邮件。 若是jerry要发送邮件给tom也是相同的流程。java
<img src="https://images2018.cnblogs.com/blog/1375651/201808/1375651-20180822223936898-1528978121.png" width="800">服务器
邮箱协议
邮件的发送和接收都是须要协议的,分别是发送邮件协议、接收邮件的协议。 发送邮件的协议:smtp 接收邮件的协议:pop/pop3 或者 imapsession
查看下126邮箱的发送和接收邮件协议服务器 <img src="https://images2018.cnblogs.com/blog/1375651/201808/1375651-20180822225335546-1847925890.png" width="346">spa
Java实现发送邮件
主要涉及到三个核心类code
Properties 邮件服务器会话对象 Session Message 邮件内容 Transport 邮件发送者htm
邮件发送Utils
MailUtils对象
package com.coderhong.utils; import java.util.Properties; import javax.mail.Authenticator; import javax.mail.Message; import javax.mail.MessagingException; import javax.mail.PasswordAuthentication; import javax.mail.Session; import javax.mail.Transport; import javax.mail.internet.AddressException; import javax.mail.internet.InternetAddress; import javax.mail.internet.MimeMessage; import javax.mail.internet.MimeMessage.RecipientType; public class MailUtils { public static void sendMail(String email, String emailMsg) throws AddressException, MessagingException { // 1.建立一个程序与邮件服务器会话对象 Session Properties props = new Properties(); //设置发送的协议 props.setProperty("mail.transport.protocol", "SMTP"); //设置发送邮件的服务器 props.setProperty("mail.host", "smtp.163.com"); props.setProperty("mail.smtp.auth", "true");// 指定验证为true // 建立验证器 Authenticator auth = new Authenticator() { public PasswordAuthentication getPasswordAuthentication() { //设置发送人的账号和密码 return new PasswordAuthentication("hongketao1616", "hkt762100."); } }; Session session = Session.getInstance(props, auth); // 2.建立一个Message,它至关因而邮件内容 Message message = new MimeMessage(session); //设置发送者 message.setFrom(new InternetAddress("hongketao1616@163.com")); //设置发送方式与接收者 message.setRecipient(RecipientType.TO, new InternetAddress(email)); //设置邮件主题 message.setSubject("用户激活"); // message.setText("这是一封激活邮件,请<a href='#'>点击</a>"); //设置邮件内容 message.setContent(emailMsg, "text/html;charset=utf-8"); // 3.建立 Transport用于将邮件发送 Transport.send(message); } }
MailUtils说明blog
<img src=https://images2018.cnblogs.com/blog/1375651/201808/1375651-20180822232836677-1252049049.png width="769">ip