SMTP

SMTP基本電子郵件發送前端

1.電子郵件發送linux

 

客戶端發送給服務器端,postfix軟件提供MTA,MDA.vim

MTA 提供SMTP服務,接受郵件(讀取DNSMX記錄)--》保存MDA 傳送郵件數組

MUA 用戶代理安全

 

1-1服務器使用SMTP協議將電子郵件提交至TCP端口25,或由本地客戶端經過/usr/bin/sendmail程序進行提交。若是該MTA是最終目標位置,郵件將傳遞至MDA。不然,將使用MX記錄在DNS中查找下一個MTA,並使用SMTP進行轉發。服務器

1-2.MDA:「郵件發送代理MDA將郵件發送至收件人的本地郵件存儲位置(默認狀況下是/var/spool/mail/user)Postfix提供本身的MDA,以發送至基於文件的本地默認郵件存儲位置/usr/libexec/postfix/local.網絡

1-3.轉發:電子郵件服務器(MTA)將提交的郵件轉發至另外一個服務器,以進行發送dom

1-4.排隊:失敗的發送或轉發嘗試排隊等待,並由MTA定義重試。(默認狀況下,Postfix每小時執行此操做一次)編輯器

1-5.拒絕:在首次提交期間,電子郵件被電子郵件服務器拒絕ide

1-6.退回:遠程服務器接受電子郵件以進行發送之後,又將該電子郵件退回給始發電子郵件服務器和/或用戶電子郵件以進行發送之後,又將該電子郵件退回給始發電子郵件服務器和/或用戶

 

 

2-1Postfixpostfix RPM包提供,並經過postfix服務腳本控制。它是一個由多個協同操做程序構成的模塊化程序,它的組件由master進程控制。

2-2Postfix的主配置文件是/etc/postfix/main.cf,可使用文本編輯器或postconf命令進行編輯。postconf命令還可用於肯定Postfix的全部當前和默認配置設置或逐項肯定這些設置。

2-3默認狀況下,Postfix僅偵聽來自本地主機的傳入電子郵件。若要從新配置postfix以接收從遠程主機發送的本地郵件,必須在/etc/postfix/main.cf中設置inet_interfaces = all

2-4對電子郵件進行故障排除時,將在/var/log/maillog中保留全部與郵件相關的操做日誌,其中包括關於被事件和成功事件的信息。mailq命令(postqueue -p)顯示已排隊的全部傳出郵件的列表。若要嘗試再次當即發送全部已排隊的郵件,能夠運行postfix flush命令(postqueue -f);不然,postfix將大約每小時嘗試從新發送一次,直至郵件被接受或過時

 

 

3.重要的Postfix配置指令

  能夠在/etc/postfix/main.cf文件中找到如下全部指令。

3-1 myorigin

    重寫本地發佈的電子郵件,使其顯示爲來自該域。這樣有助於確保響應返回入站郵件服務器

    默認:myorigin = $myhostname

3-2 inet_interfaces

    控制Postfix偵聽傳入電子郵件的網絡接口。若是設置爲loopback-only,僅偵聽127.0.0.1::1,

    若是設置爲all,則偵聽全部網絡接口。還能夠指定特定地址。

    默認:inet_interfaces = localhost

3-3 mydestination

    收到地址爲這些域的電子郵件將傳遞至MDA,以進行本地發送。

    默認:mydestination = $myhostname, localhost.$mydomain, localhost

3-4 mynetworks

    IP地址和網絡的逗號分隔列表(採用CIDR表示法)。這些地址和網絡能夠經過此MTA轉發至任何位置,無需進一步身份驗證。

    默認:mynetworks = 127.0.0.0/8

3-5 relayhost

    relayhost轉發全部經過的出站郵件。一般用方括號指定,以阻止MX記錄查找。

    默認:relayhost =

3-6 local_transport

    收件地址爲$mydestination的郵件的發送方式。默認狀況下,設置爲local:$myhostname(使用Local MDA將傳入電子郵件發送到/var/spool/mail中的本地郵件存儲位置)

    默認:local_transport = local:$myhostname

3-7

    postconf -d 顯示默認值。

    postconf -n顯示不一樣於默認值的更改。

 

 

4.空殼郵件客戶端(給服務端新建空殼,保護數據安全。)

    實際上,大多數組織再也不只用一個郵件服務器來處理全部入站和出戰電子郵件。相反,出於安全方面的考慮郵件服務器專門針對特定角色進行了設置,以即可以面向其具體針對的應用程序更好標準角色包括:

   1null客戶端:運行本地MTA的客戶端計算機,使全部電子郵件均可以轉發至中央郵件服務器以進行發送,null客戶端不接受任何電子郵件的本地發送。

   2)僅入站郵件服務器:在站點處理用戶的全部傳入電子郵件,並將之傳遞給MDA以發送至用戶郵件存儲位置的郵件服務器。在實際狀況中,一般會在僅入站郵件服務器前端安裝反垃圾郵件服務器或備,以過濾垃圾郵件而且僅將 正常郵件轉發至入站郵件服務器。

   3)出站郵件轉發:出站郵件轉發(「smarthost」)接收全部出站郵件,並使用MX

錄和SMTP協議將郵件轉發至目標位置 。

 

 

#################環境配置

一臺主機:(IP:172.25.254.1450

hostnamectl set-hostname mailinux.linux.com

 

yum install bind

systemctl  start  named

systemctl stop firewalld.service

vim /etc/resolv.conf

wKioL1g-hHawBB6bAABR-tw8XRM381.png-wh_50 

 

vim /etc/named.conf

wKiom1g-hIKSL2b3AAFXbRQqQ_c006.png-wh_50 

 

wKioL1g-hI2RtRbxAABJTbdLksk595.png-wh_50 

 vim /etc/named.rfc1912.zones

wKioL1g-hJmDGinrAAF-hsW4Iy4005.png-wh_50 

 

cd  /var/named

cp -p named.localhost westos.com.zone

vim westos.com.zone

wKiom1g-hKSQV092AADz8yeoqJ0085.png-wh_50 

 

cp -p named.localhost linux.com.zone

vim linux.com.zone

wKioL1g-hLCzvnyfAADCfK8ttRI551.png-wh_50 

 

另一臺主機

hostnamectl set-hostname mailwestos.westos.com

systemctl  stop  firewalld   關掉火牆

vim /etc/resolv.conf

wKiom1g-hLrQ8BWrAABjFfGlqC8623.png-wh_50 

 

測試

兩臺主機均可以做爲測試端

dig -t mx linux.com

 

wKioL1g-hMeioIpeAAE8WtMKjc8693.png-wh_50 

 

dig -t mx westos.com

wKiom1g-hNWSL4jSAAFKFXDDNdw287.png-wh_50 

 

 

####################遠程發送

一臺主機

 vim /etc/postfix/main.cf

 

 mydomain = linux.com          #收件方看到的發送方郵件主機名

 myorigin = $mydomain

  inet_interfaces = all             #開啓接口

  #inet_interfaces = localhost   #關閉只容許本地訪問

  mydestination = $myhostname, $mydomain, localhost  #

wKiom1g-hN_RK9DOAAGWsVzMaqE149.png-wh_50 

 

 

wKiom1g-hO3RMyJ3AABVHjoc9xs575.png-wh_50 

 

wKioL1g-hPXzbGNQAACqL3yvdK4937.png-wh_50 

 

wKioL1g-hP-zORJjAAFe1w0IsG0604.png-wh_50 

 

重啓服務 systemctl restart postfix.service

 

另一臺主機

vim /etc/postfix/main.cf

配置相同,只是把全部的linux改成westos

 

重啓服務 systemctl restart postfix.service

 netstat antlpe |grep master  #查看端口

測試(兩臺主機均可以)

lmailinux主機上測

wKiom1g-hQrQu0FgAAB5slrnClo230.png-wh_50 

 

在另一臺主機上看發送結果

wKioL1g-hRWA4rrfAALnX6LqyYI323.png-wh_50 

 

 

##############################別名   

    1.vim /etc/aliasesmailinux主機)

      最後添加  root:  admin

wKiom1g-hSDTTQ-FAAAz8noVfMg849.png-wh_50 

    2.postalias /etc/aliases

    3.systemctl restart  postfix

4.mail admin     #可直接用別名給root發郵件

測試

mailwestos發送主機

發送

wKioL1g-hSrBS3QdAADOhsoxj94059.png-wh_50 

mailinux主機接收

wKiom1g-hTfigzU9AAQPPcoCAnA814.png-wh_50 

 

 

###############################羣發

 

1.vim /etc/moreusersmailinux主機)

     root

     student

2.vim /etc/aliases

     最後添加 more:  :include:/etc/moreusers

wKiom1g-hUCCtWG-AABqa-_7qEE813.png-wh_50 

 3.postalias /etc/aliases

4.systemctl restart  postfix

 5.mail more

6.分別查看

   mail

   mail -u student

測試

mailwestos發送主機

wKiom1g-hUvhlJWnAABsAl_OsAk457.png-wh_50 

 

 

mailinux接收主機 (rootstudent用戶都接收到了郵件)

wKioL1g-hVqwfLlyAANMwCcvU9M468.png-wh_50 

 

 

wKiom1g-hWaC510YAALTN_Uia0w682.png-wh_50 

 

############################出站地址假裝

1.vim /etc/postfix/generic(mailinux主機)

wKioL1g-hW-yBPrTAAAydgrlqzM720.png-wh_50 

2.postmap /etc/postfix/generic

3. postconf -e "smtp_generic_maps=hash:/etc/postfix/generic"

4.systemctl restart postfix.service

5.測試

mailinux發送端

wKiom1g-hXnRMU5_AACG8T-5nGc975.png-wh_50 

 

mailwestos測試端

wKioL1g-hYXA3jCNAAP1htmz_dI231.png-wh_50 

 

###########################遠程發送

 

另一臺主機上操做,從mailinux主機發送一份郵件到mailwestos主機

 

 

wKiom1g-hZPiQcbSAAHX52mfTnI328.png-wh_50 

 

mailwestos主機上查看

wKioL1g-haHwASRjAALZZsL-HKk919.png-wh_50

相關文章
相關標籤/搜索