您好,登錄后才能下訂單哦!
一、郵件服務簡介
郵件服務在互聯網早期就已經出現,如今已成為人們互聯網生活中必不可少的一項服務。那么郵件服務是怎么工作的呢?如下給出郵件發送與接收的典型過程:
1、發件人使用SMTP協議傳輸郵件到郵件服務器A;
2、郵件服務器A根據郵件中指定的接收者,投送郵件至相應的郵件服務器B;
3、收件人使用POP3協議從郵件服務器B接收郵件。
SMTP(Simple Mail Transfer Protocol)是電子郵件(email)傳輸的互聯網標準,定義在RFC5321,默認使用端口25;
POP3(Post Office Protocol - Version 3)主要用于支持使用客戶端遠程管理在服務器上的電子郵件。定義在RFC 1939,為POP協議的第三版(最新版)。
這兩個協議均屬于TCP/IP協議族的應用層協議,運行在TCP層之上。
我們日常收發郵件使用的客戶端、Web Mail的背后都在運行著這兩個協議,完成收發郵件的過程。而現在我們需要使用SMTP協議來把發送給用戶的郵件傳輸到郵件服務器。
從客戶端傳輸郵件到服務器需要雙方的配合,而規則就定義在SMTP協議中。我們現在需要做的是找一個SMTP服務器,再實現一個SMTP客戶端,然后讓客戶端發送郵件到服務器。
二、配置郵件服務器
本文使用126郵箱測試,在以下界面中開啟smtp服務器,設置授權碼,在后面代碼中會使用到
三、實現郵件客戶端
1)修改pom.xml,添加依賴庫
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency>
2)修改application.properties,添加郵箱配置
spring.mail.host=smtp.126.com spring.mail.username=****@126.com spring.mail.password=password #上面獲取設置的授權碼 spring.mail.default-encoding=UTF-8
3)新增MailController
package com.xiaofangtech.sunt.controller; import javax.mail.internet.MimeMessage; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.xiaofangtech.sunt.utils.ResultMsg; import com.xiaofangtech.sunt.utils.ResultStatusCode; @RestController @RequestMapping("mail") public class MailController { @Autowired JavaMailSender mailSender; @RequestMapping("sendemail") public Object sendEmail() { try { final MimeMessage mimeMessage = this.mailSender.createMimeMessage(); final MimeMessageHelper message = new MimeMessageHelper(mimeMessage); message.setFrom("****@126.com"); message.setTo("****@example.com"); message.setSubject("測試郵件主題"); message.setText("測試郵件內容"); this.mailSender.send(mimeMessage); ResultMsg resultMsg = new ResultMsg(ResultStatusCode.OK.getErrcode(), ResultStatusCode.OK.getErrmsg(), null); return resultMsg; } catch(Exception ex) { ResultMsg resultMsg = new ResultMsg(ResultStatusCode.SYSTEM_ERR.getErrcode(), ResultStatusCode.SYSTEM_ERR.getErrmsg(), null); return resultMsg; } } }
4)運行測試
瀏覽器中輸入
http://localhost:8080/mail/sendemail
查看郵箱可以收到剛發送的郵件
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。