Java開發系列-電子郵箱

概述

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

相關文章
相關標籤/搜索