JavaWeb實(shí)現(xiàn)簡(jiǎn)單用戶發(fā)送郵件
在實(shí)現(xiàn)用戶發(fā)送郵件之前,我們先對(duì)電子郵箱的基本概念做一些了解。
一、電子郵件
1. 郵件服務(wù)器
1.要在 Internet 上提供電子郵件功能,必須有專門的電子郵件服務(wù)器。
例如:現(xiàn)在 Internet 很多 提供郵件服務(wù)的廠商:sina、sohu、163 等等他們都有自己的郵件服務(wù)器。
2.這些服務(wù)器類似于現(xiàn)實(shí)生活中的郵局,它主要負(fù)責(zé)接收用戶投遞過來的郵件,并把郵件投 遞到郵件接收者的電子郵箱中。
3.郵件服務(wù)器,按照提供的服務(wù)類型,可以分為發(fā)送郵件的服務(wù)器我接收郵件的服務(wù)器。
2. 電子郵箱
電子郵箱(E-mail 地址)的獲得需要在郵件服務(wù)器上進(jìn)行申請(qǐng) ,確切地說,電子郵箱其實(shí) 就是用戶在郵件服務(wù)器上申請(qǐng)的一個(gè)帳戶。用戶在郵件服務(wù)器上申請(qǐng)了一個(gè)帳號(hào)后,郵件 服務(wù)器就會(huì)為這個(gè)帳號(hào)分配一定的空間,用戶從而可以使用這個(gè)帳號(hào)以及空間,發(fā)送電子 郵件和保存別人發(fā)送過來的電子郵件。
3. 郵件協(xié)議
SMTP 協(xié)議-發(fā)郵件協(xié)議
a. 全稱為 Simple Mail Transfer Protoco(l 簡(jiǎn)單郵件傳輸協(xié)議),它定義了郵件客戶端軟件與 SMTP 服務(wù)器之間、以及兩臺(tái) SMTP 服務(wù)器之間的通訊規(guī)則。
b. 端口號(hào):25
POP3 協(xié)議-收郵件協(xié)議
a. 全稱為 Post Office Protocol(郵局協(xié)議),它定義了郵件客戶端軟件與 POP3 服務(wù)器的通訊規(guī)則。
b. 端口號(hào):110
二、 發(fā)送郵件
1. 發(fā)送郵件的流程

2. 代碼實(shí)現(xiàn)
package com.store.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.創(chuàng)建一個(gè)程序與郵件服務(wù)器對(duì)話對(duì)象 Session
Properties props = new Properties();
//設(shè)置發(fā)送的協(xié)議
//props.setProperty("mail.transport.protocol", "SMTP");
//設(shè)置發(fā)送郵件的服務(wù)器
//props.setProperty("mail.host", "smtp.126.com");
//props.setProperty("mail.smtp.auth", "true");//指定驗(yàn)證為true
//創(chuàng)建驗(yàn)證器
Authenticator auth = new Authenticator() {
public PasswordAuthentication getPasswordAuthentication() {
//設(shè)置發(fā)件人的賬號(hào)和密碼
return new PasswordAuthentication("admin", "admin@store.com");
}
};
Session session = Session.getInstance(props, auth);
// 2.創(chuàng)建一個(gè)Message,它相當(dāng)于是郵件內(nèi)容
Message message = new MimeMessage(session);
//設(shè)置發(fā)送者
message.setFrom(new InternetAddress("admin@store.com"));
//設(shè)置發(fā)送方式與接收者
message.setRecipient(RecipientType.TO, new InternetAddress(email));
//設(shè)置郵件主題
message.setSubject("這是我們的第一份郵件");
//設(shè)置郵件內(nèi)容
message.setContent("哈哈,你到我的商城注冊(cè)了", "text/html;charset=UTF-8");
// 3.創(chuàng)建Transport,用于將郵件發(fā)送
Transport.send(message);
}
public static void main(String[] args) throws AddressException, MessagingException {
MailUtils.sendMail("aaa@store.com", "abcdefg");
}
}
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
SpringBoot接口參數(shù)的默認(rèn)值與必要性最佳實(shí)踐記錄
這篇文章主要介紹了SpringBoot接口參數(shù)的默認(rèn)值與必要性,通過合理設(shè)置接口參數(shù)的默認(rèn)值和必要性,我們可以創(chuàng)建出既健壯又靈活的?RESTful?API,需要的朋友可以參考下2024-08-08
maven引入kabeja依賴的實(shí)現(xiàn)步驟
本文主要介紹了maven引入kabeja依賴的實(shí)現(xiàn)步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
JAVA中使用openoffice將Excel轉(zhuǎn)PDF再轉(zhuǎn)圖片功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了JAVA中使用openoffice將Excel轉(zhuǎn)PDF再轉(zhuǎn)圖片功能實(shí)現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-12-12
SpringBoot項(xiàng)目的測(cè)試類實(shí)例解析
這篇文章主要介紹了SpringBoot項(xiàng)目的測(cè)試類實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12
spring常用注解開發(fā)一個(gè)RESTful接口示例
這篇文章主要為大家介紹了使用spring常用注解開發(fā)一個(gè)RESTful接口示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步2022-03-03
JdbcTemplate方法介紹與增刪改查操作實(shí)現(xiàn)
這篇文章主要給大家介紹了關(guān)于JdbcTemplate方法與增刪改查操作實(shí)現(xiàn)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者使用JdbcTemplate具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

