1. 程式人生 > >CentOS使用SMTP第三方發送郵件

CentOS使用SMTP第三方發送郵件

CentOS SMTP mail

利用QQ郵箱+SMTP來構成郵件服務

1SMTP協議簡介

SMTP稱為簡單郵件傳輸協議(Simple Mail Transfer Protocal),目標是向用戶提供高效、可靠的郵件傳輸。它的一個重要特點是它能夠在傳送中接力傳送郵件,即郵件可以通過不同網絡上的主機接力式傳送。通常它工作在兩種情況下:一是郵件從客戶機傳輸到服務器;二是從某一個服務器傳輸到另一個服務器。SMTP是一個請求/響應協議,它監聽25號端口,用於接收用戶的Mail請求,並與遠端Mail服務器建立SMTP連接。

2SMTP協議工作機制

SMTP通常有兩種工作模式。發送SMTP和接收SMTP。具體工作方式為:發送SMTP在接收到用戶的郵件請求後,判斷此郵件是否為本地郵件,若是直接投送到用戶的郵箱,否則向

DNS查詢遠端郵件服務器的MX記錄,並建立與遠端接收SMTP之間的一個雙向傳送通道,此後SMTP命令由發送SMTP發出,由接收SMTP接收,而應答則反方向傳送。一旦傳送通道建立,SMTP發送者發送MAIL命令指明郵件發送者。如果SMTP接收者可以接收郵件則返回OK應答。SMTP發送者再發出RCPT命令確認郵件是否接收到。如果SMTP接收者接收,則返回OK應答;如果不能接收到,則發出拒絕接收應答(但不中止整個郵件操作),雙方將如此反復多次。當接收者收到全部郵件後會接收到特別的序列,入伏哦接收者成功處理了郵件,則返回OK應答。

3SMTP的連接和發送過程

a)建立TCP連接

b)客戶端發送HELO

命令以標識發件人自己的身份,然後客戶端發送MAIL命令;

服務器端正希望以OK作為響應,表明準備接收

c)客戶端發送RCPT命令,以標識該電子郵件的計劃接收人,可以有多個RCPT行;

服務器端則表示是否願意為收件人接收郵件

d)協商結束,發送郵件,用命令DATA發送

e)以.表示結束輸入內容一起發送出去

f)結束此次發送,用QUIT命令退出

#CenrOS搭建:

使用的服務器版本:

[root@zlx ~]# uname -a

Linux zlx 2.6.32-642.6.2.el6.x86_64 #1 SMP Wed Oct 26 06:52:09 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux

因為CentOS模式安裝了postfix郵件服務,我們先給他關閉

[root@zlx ~]# /etc/init.d/postfix stop

Shutting down postfix: [ OK ]

然後要是用mail命令來發送郵件,所以安裝

yum –y install mailx

然後編輯配置文件/etc/mail.rc

vim /etc/mail.rc

#使用qq郵箱來發送郵件

set [email protected] #你要使用的郵箱地址

set smtp=smtps://smtp.qq.com:465 #使用qq.com465加密端口

set [email protected] #登錄郵箱使用的賬號

set smtp-auth-password=dcnhslrkexdbbgbh #qq郵箱開啟POP3/SMTP服務時提供的密碼,

set smtp-auth=login #用戶名和密碼登錄

set ssl-verify=ignore #使用ssl加密

set nss-config-dir=/etc/pki/nssdb/ #指定ssl證書所在的位置

QQ郵箱開啟POP3/SMTP服務,

技術分享圖片

設置à賬戶à POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務

技術分享圖片

點擊開啟:

技術分享圖片

然後他會告訴你一個授權碼:把這個授權碼填到剛才set auth-password=的位置

技術分享圖片

然後發送測試郵件:

[root@zlx ~]# echo 123 | mail -s "test Email" [email protected]

接受成功

技術分享圖片

剛開始做的時候沒有選擇ssl加密的方式連接,一直卡在

[root@zlx ~]# echo 123 | mail -v -s "test Email" [email protected]

Resolving host smtp.qq.com . . . done.

Connecting to 14.18.245.164 . . . 連接這一步,然後緊接著就報錯,所以我們選擇加密連接


CentOS使用SMTP第三方發送郵件