阿里雲CentOS Linux服務器上用postfix搭建郵件服務器


注:本文的郵件服務器只用於發送郵件,也就是STMP服務器。

一、准備工作

1. 為郵件服務器添加DNS解析

雖然不加DNS解析也能把郵件發出去,但會被大多數郵件服務器當作垃圾郵件。根據我們的實際經驗,需要添加三條DNS解析記錄:A記錄、MX記錄、TXT記錄。比如域名cnblogs.info,對應的DNS記錄如下:

2. 准備存放郵件的硬盤空間

如果用的是阿里雲入門級Linux服務器,有一塊20G的數據盤未掛載,需要格式化並掛載(假設這里掛載的目錄是/data),具體操作步驟見之前的博文阿里雲雲服務器硬盤分區及掛載

二、配置postfix

postfix是CentOS默認安裝的郵件服務器軟件。以下配置示例假設要配置的域名是cnblogs.info,郵件服務器主機名是mail.cnblogs.info。

1. 打開postfix的配置文件

vi /etc/postfix/main.cf

2. :75 光標移至第75行,修改myhostname

myhostname = mail.cnblogs.info

3. :83 光標移至第83行,修改mydomain

mydomain = cnblogs.info

4. :99 光標移至第99行,修改myorigin

myorigin = $mydomain

5. :116光標移至第116行,修改inet_interfaces

inet_interfaces = all

6. :119光標移至第119行,修改inet_protocols

inet_protocols = ipv4

7. :164光標移至第164行,添加$mydomain

mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain

8. :264光標移至第264行,修改mynetworks

mynetworks = 127.0.0.0/8

子網掩碼(netmask)轉換器:Network and IP address calculator

9. :419 光標移至第419行,設置home_mailbox

home_mailbox = Maildir/

10. :425 光標移至第425行,設置mail_spool_directory,/data是之前掛載的數據盤,mail目錄需要通過mkdir命令創建

mail_spool_directory = /data/mail

11. 允許stmp使用 465 端口,vim 打開 /etc/postfix/master.cf ,取消 smtps 的注釋

smtps     inet  n       -       y       -       -       smtpd

12. 重啟postfix使設置生效

service postfix restart

三、用telnet測試郵件服務器是否正常

1. 在郵件服務器上安裝telnet

yum install telnet

2. 連接服務器SMTP端口

telnet 127.0.0.1 25

3. 填寫發件人

MAIL FROM:<test@cnblogs.info>

回車

4. 填寫收件人

RCPT TO:contact@cnblogs.com 

回車

5. 撰寫郵件內容

5.1 開始寫郵件內容

DATA                   

回車

5.2 輸入標題

Subject: test message

回車

5.3 輸入內容,並以.號結束

test body
.

如果顯示下面的信息,說明郵件進入發送隊列

250 2.0.0 Ok: queued as 88D6D32A94

四、授權其他服務器通過該郵件服務器發送郵件

未授權的情況下,如果在其他服務器telnet這台服務器,在輸入收件人之后會出現Relay access denied錯誤

RCPT TO:contact@cnblogs.com
554 5.7.1 <contact@cnblogs.com>: Relay access denied

解決方法:

vi /etc/postfix/main.cf,:264將光標移至第264行,在mynetworks的值之后加這台的服務器IP地址,比如:

mynetworks = 127.0.0.0/8 58.33.14.124

service postfix restart之后,問題解決。

五、其他問題

收到上面telnet發出的郵件時,你會發現收件人信息顯示的是undisclosed recipients,解決方法是在DATA命令之后,輸入Subject之前,分別輸入:

FROM:test@cnblogs.info
TO:contact@cnblogs.com

六、參考資料:

Install Postfix to configure SMTP Server

Postfix - using Telnet to test postfix

"To" field is populated with "undisclosed-recipients" sending emails from a telnet session.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM