概述
電子郵箱就是在郵箱服務器上開啓的一塊空間。郵箱服務器就是一個安裝在計算機的服務軟件,提供有郵件服務。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