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)。
安裝軟體
安裝軟體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
登入郵箱
[[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
用mailx測試
安裝
yum install mailx -y
使用mailx傳送郵件
echo '測試郵件內容' | mail -s '測試主題!' [email protected]
郵箱客戶端配置
Outlook配置
收郵件延遲較高,不推薦使用
如果出現
伺服器錯誤: '554 5.7.1 Relay access denied'
1,開啟outlook,點選 “檔案”“資訊”bai,進入 “賬戶設定”。
2,雙擊賬戶,進入更改賬戶。
3,點選 “其他設定”,選擇傳送伺服器選項卡,勾選我的傳送伺服器要求驗證(如果忘記勾選,只能收到郵件卻不能傳送郵件)
Foxmail配置
選中設定->賬號->定時收取郵件,設定好每隔多少分鐘拉取郵件.推薦使用Foxmail.
出現問題
在起好了服務,開放了防火牆埠,設定了安全組的情況下。telnet localhost 25埠通,telnet 域名 25不通,是因為服務監聽ip的問題
vi /etc/postfix/main.cf
inet_interfaces=localhost 註釋掉這段,上面寫了all,沒注意這裡還有個localhost
參考:
https://www.qcmoke.site/devops/mail.html