JavaWeb實現簡單用戶發送郵件

在實現用戶發送郵件之前,我們先對電子郵箱的基本概念做一些瞭解。

一、電子郵件

1. 郵件服務器

1.要在 Internet 上提供電子郵件功能,必須有專門的電子郵件服務器。
例如:現在 Internet 很多 提供郵件服務的廠商:sina、sohu、163 等等他們都有自己的郵件服務器。
2.這些服務器類似於現實生活中的郵局,它主要負責接收用戶投遞過來的郵件,並把郵件投 遞到郵件接收者的電子郵箱中。
3.郵件服務器,按照提供的服務類型,可以分為發送郵件的服務器我接收郵件的服務器。

2. 電子郵箱

電子郵箱(E-mail 地址)的獲得需要在郵件服務器上進行申請 ,確切地說,電子郵箱其實 就是用戶在郵件服務器上申請的一個帳戶。用戶在郵件服務器上申請瞭一個帳號後,郵件 服務器就會為這個帳號分配一定的空間,用戶從而可以使用這個帳號以及空間,發送電子 郵件和保存別人發送過來的電子郵件。

3. 郵件協議

SMTP 協議-發郵件協議

a. 全稱為 Simple Mail Transfer Protoco(l 簡單郵件傳輸協議),它定義瞭郵件客戶端軟件與 SMTP 服務器之間、以及兩臺 SMTP 服務器之間的通訊規則。
b. 端口號:25

POP3 協議-收郵件協議

a. 全稱為 Post Office Protocol(郵局協議),它定義瞭郵件客戶端軟件與 POP3 服務器的通訊規則。
b. 端口號:110

二、 發送郵件

1. 發送郵件的流程

2. 代碼實現

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.創建一個程序與郵件服務器對話對象 Session

  Properties props = new Properties();
  //設置發送的協議
  //props.setProperty("mail.transport.protocol", "SMTP");
  
  //設置發送郵件的服務器
  //props.setProperty("mail.host", "smtp.126.com");
  //props.setProperty("mail.smtp.auth", "true");//指定驗證為true

  //創建驗證器
  Authenticator auth = new Authenticator() {
   public PasswordAuthentication getPasswordAuthentication() {
    //設置發件人的賬號和密碼
    return new PasswordAuthentication("admin", "[email protected]");
   }
  };

  Session session = Session.getInstance(props, auth);

  // 2.創建一個Message,它相當於是郵件內容
  Message message = new MimeMessage(session);

  //設置發送者
  message.setFrom(new InternetAddress("[email protected]"));

  //設置發送方式與接收者
  message.setRecipient(RecipientType.TO, new InternetAddress(email)); 

  //設置郵件主題
  message.setSubject("這是我們的第一份郵件");

  //設置郵件內容
  message.setContent("哈哈,你到我的商城註冊瞭", "text/html;charset=UTF-8");

  // 3.創建Transport,用於將郵件發送
  Transport.send(message);
 }
 public static void main(String[] args) throws AddressException, MessagingException {
  MailUtils.sendMail("[email protected]", "abcdefg");
 }
}

以上就是本文的全部內容,希望對大傢的學習有所幫助,也希望大傢多多支持WalkonNet。

推薦閱讀: