1. 程式人生 > 其它 >automation 伺服器不能建立物件_CentOS7搭建簡單的郵件伺服器

automation 伺服器不能建立物件_CentOS7搭建簡單的郵件伺服器

技術標籤:automation 伺服器不能建立物件centos7 ftp伺服器搭建net start npf 服務名無效window terminal 郵件

郵件伺服器

概述

郵件收、發伺服器是分開的,也就是我們需要搭建一個郵件傳送伺服器和一個郵件收取伺服器。
本文會搭建收、發兩個伺服器,並用郵件客戶端(Foxmail)做測試。

協議

協議就是定義規則,這裡是郵件協議,定義郵件收發的規則,瞭解規則有助於理解軟體的配置檔案。
郵件傳送協議 SMTP(Simple Mail Transfer Protocol),開啟埠 25。
郵件收取協議 POP,開啟埠 110;還有個常用郵件收取協議 IMOP,開啟埠 143。

服務軟體

Postfix
Postfix 是實現 SMTP 協議的軟體,也叫做郵件傳送伺服器。

上面說的郵件客戶端將郵件扔給它,由它對郵件進行轉發,至於怎麼轉發,SMTP 協議制定了規則,而 Postfix 負責具體事情,我們只需要修改 Postfix 配置檔案要求它按照我們的想法去做。

Dovecot
Dovecot 實現了 POP 和 IMOP 協議,也叫做郵件收取伺服器。如果只搭建了 Postfix 而沒有它,不好意思,你是收不到郵件的。

Sasl
Sasl登陸驗證服務,在下面的介紹可以看到 Postfix 作為郵件傳送伺服器,不能無限制的轉發任意郵件,應當只轉發它信任的發件人傳送的郵件,這一點體現在 Postfix 的配置檔案要配置它認為安全的主機(mynetworks 引數)。但這樣會顯得很麻煩,Sasl 通過其它方式也可以幫助 Postfix 完成信任郵件的認證。

設定域名

mail.52zt.info用A記錄解析到郵件伺服器IP(後面的各個客戶端配置的域名都寫這個A記錄的),再把52zt.info用MX記錄解析到mail.52zt.info(這個是當遇到***@52zt.info時會解析到mail.52zt.info)。
測試埠telnet命令也要用mail.52zt.info,不能用mx記錄的52zt.info(用這個會解析到A記錄解析的52zt.info)。6acc9477-9519-eb11-8da9-e4434bdf6706.png

安裝軟體

安裝軟體postfix、dovecot、cyrus-sasl

yum -y install postfix dovecot  cyrus-sasl

配置軟體

配置postfix

vi /etc/postfix/main.cf


myhostname = mail.52zt.info

mydomain = 52zt.info

myorigin = $mydomain

inet_interfaces = all
inet_protocols = all

mydestination = $myhostname,$mydomain

home_mailbox = Maildir/




smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
mynetworks = 127.0.0.0/8
smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination
  • smtpd_sasl_auth_enable = yes //開啟認證

  • smtpd_sasl_security_options = noanonymous //不允許匿名發信

  • mynetworks = 127.0.0.0/8//允許的網段,如果增加本機所在網段就會出現允許不驗證也能向外域發信

  • smtpd_recipient_restrictions = permit_mynetworks,permit_sasl_authenticated,reject_unauth_destination

  • 允許本地域以及認證成功的發信,拒絕認證失敗的發信

檢查並啟動postfix

postfix check  
systemctl start postfix
systemctl enable postfix

配置dovecot

vi /etc/dovecot/dovecot.conf

protocols = imap pop3 lmtp
listen = *, ::



!include conf.d/10-auth.conf

ssl = no
disable_plaintext_auth = no
mail_location = maildir:~/Maildir

啟動dovecot

systemctl start dovecot    
systemctl enable dovecot

配置cyrus-sasl

vi /etc/sasl2/smtpd.conf
pwcheck_method: saslauthd
mech_list: plain login
log_level:3
vi /etc/sysconfig/saslauthd
MECH=shadow

啟動

systemctl start saslauthd     
systemctl enable saslauthd

新增使用者

新增使用者,並將密碼設為123456

 useradd  autumn
echo 123456 | passwd --stdin autumn

測試

yum -y install telnet-server telnet

測試傳送

[[email protected] ~]
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 mail.52zt.info ESMTP Postfix
mail from:[email protected]
250 2.1.0 Ok
rcpt to:[email protected]
250 2.1.5 Ok
data
354 End data with .
subject:這是主題
this is test mail
.
250 2.0.0 Ok: queued as 6224C10263A

6bcc9477-9519-eb11-8da9-e4434bdf6706.png

登入郵箱

[[email protected] ~]
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Dovecot ready.
user autumn
+OK
pass 密碼
+OK Logged in.


list
retr 1
quit

6ccc9477-9519-eb11-8da9-e4434bdf6706.png

用mailx測試

安裝

yum  install  mailx -y

使用mailx傳送郵件

echo '測試郵件內容' | mail -s '測試主題!' [email protected]

郵箱客戶端配置

Outlook配置

收郵件延遲較高,不推薦使用6dcc9477-9519-eb11-8da9-e4434bdf6706.png

如果出現

伺服器錯誤: '554 5.7.1 Relay access denied'

1,開啟outlook,點選 “檔案”“資訊”bai,進入 “賬戶設定”。
2,雙擊賬戶,進入更改賬戶。
3,點選 “其他設定”,選擇傳送伺服器選項卡,勾選我的傳送伺服器要求驗證(如果忘記勾選,只能收到郵件卻不能傳送郵件)6fcc9477-9519-eb11-8da9-e4434bdf6706.png

Foxmail配置

選中設定->賬號->定時收取郵件,設定好每隔多少分鐘拉取郵件.推薦使用Foxmail.70cc9477-9519-eb11-8da9-e4434bdf6706.png

出現問題

在起好了服務,開放了防火牆埠,設定了安全組的情況下。telnet localhost 25埠通,telnet 域名 25不通,是因為服務監聽ip的問題

vi /etc/postfix/main.cf

inet_interfaces=localhost 註釋掉這段,上面寫了all,沒注意這裡還有個localhost

參考:
https://www.qcmoke.site/devops/mail.html