Centos 7 搭建postfix郵件伺服器

lhrbest發表於2020-09-13


Centos 7 搭建postfix郵件伺服器

--- Linux 7 搭建郵件伺服器:埠25、110、143
vi /etc/hosts
172.17.0.3  lhrcentos76  mail.lhr.com
-- 安裝配置postfix
yum install -y postfix
vim /etc/postfix/main.cf
# 修改內容:
# 75行: 取消註釋,設定hostname 
myhostname = mail.lhr.com
# 83行: 取消註釋,設定域名 
mydomain = lhr.com 
# 99行: 取消註釋 
myorigin = $mydomain 
# 116行: 預設是localhost,我們需要修改成all
inet_interfaces = all 
# 119行: 推薦ipv4,如果支援ipv6,則可以為all 
inet_protocols = ipv4 
# 164行: 新增 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 
# 264行: 取消註釋,指定內網和本地的IP地址範圍 
mynetworks = 172.0.0.0/8
# 419行: 取消註釋,郵件儲存目錄
home_mailbox = Maildir/ 
# 571行: 新增 
smtpd_banner = $myhostname ESMTP 
# 新增到最後 
# 規定郵件最大尺寸為10M 
message_size_limit = 10485760 
# 規定收件箱最大容量為1G 
mailbox_size_limit = 1073741824 
# SMTP認證 
smtpd_sasl_type = dovecot 
smtpd_sasl_path = private/auth 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous 
smtpd_sasl_local_domain = $myhostname 
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject
開啟dovecot服務並新增到系統自啟
systemctl restart postfix
systemctl enable postfix
2、安裝並配置dovecot
yum install -y dovecot 
vim /etc/dovecot/dovecot.conf 
# 更改內容:
# 30行: 如果不使用IPv6,請修改為* 
listen = *
#第48行,設定允許登入的網段地址,也就是說我們可以在這裡限制只有來自於某個網段的使用者才能使用電子郵件系統。如果想允許所有人都能使用,則不用修改本引數
login_trusted_networks = 192.168.10.0/24更改內容
vim /etc/dovecot/conf.d/10-auth.conf 
# 更改內容:
# 9行: 取消註釋並修改 disable_plaintext_auth = no 
# 97行: 新增 auth_mechanisms = plain login
vim /etc/dovecot/conf.d/10-mail.conf
# 更改內容:
# 30行: 取消註釋並新增 mail_location = maildir:~/Maildir
vim /etc/dovecot/conf.d/10-master.conf
# 更改內容:
# 88-90行: 取消註釋並新增 # Postfix smtp驗證 
unix_listener /var/spool/postfix/private/auth { 
mode = 0666 
user = postfix
group = postfix
}
注意:如果我們沒有使用ssl的話需要進行下面的操作。使用了則不需要。
vim /etc/dovecot/conf.d/10-ssl.conf 
# 更改內容:
# 8行: 將ssl的值修改為 ssl = no
開啟dovecot服務並新增到系統自啟
systemctl restart dovecot
systemctl enable dovecot
3、建立使用者
useradd admin
echo "admin:lhr" | chpasswd
-- 發郵件測試
[root@lhroggdirector /]# telnet mail.lhr.com 25
Trying 172.17.0.2...
Connected to mail.lhr.com.
Escape character is '^]'.
220 mail.lhr.com ESMTP
helo mail.lhr.com
250 mail.lhr.com
mail from: lhr@lhr.com
250 2.1.0 Ok
rcpt to: lhrbest@qq.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
helo:
this is a test
.
250 2.0.0 Ok: queued as 2935C2407FC
quit
221 2.0.0 Bye
Connection closed by foreign host.





一、郵件系統的簡單介紹

  • 電子郵件系統基於郵件協議來完成電子郵件的傳輸,常見的郵件協議有下面這些。
  • 簡單郵件傳輸協議(Simple Mail Transfer Protocol,SMTP):用於傳送和中轉發出的電子郵件,佔用伺服器的25/TCP埠。
  • 郵局協議版本3(Post Office Protocol 3):用於將電子郵件儲存到本地主機,佔用伺服器的110/TCP埠。
  • Internet訊息訪問協議版本4(Internet Message Access Protocol 4):用於在本地主機上訪問郵件,佔用伺服器的143/TCP埠。
  • 一個最基礎的電子郵件系統肯定要能提供發件服務和收件服務,為此需要使用基於SMTP協議的Postfix服務程式提供發件服務功能,並使用基於POP3協議的Dovecot服務程式提供收件服務功能。這樣一來,使用者就可以使用Outlook Express或Foxmail等客戶端服務程式正常收發郵件了。

二、準備工作

系統:CentOS 7
軟體:postfix,dovecot
域名:擁有自己的域名

三、搭建準備

修改主機名

# 語法
hostnamectl  set-hostname   mail.域名
# 例:
hostnamectl  set-hostname   mail.abc.com
vi /etc/hosts
172.17.0.3  lhrcentos76  mail.lhr.com

四、郵箱軟體安裝配置

安裝並配置postfix

  1. 軟體說明

postfix是提供發件服務的(注意:修改配置檔案需備份,以下步驟未包含備份。)
postfix服務程式主配置檔案中的重要引數。

引數 作用
myhostname 郵局系統的主機名
mydomain 郵局系統的域名
myorigin 從本機發出郵件的域名名稱
inet_interfaces 監聽的網路卡介面
mydestination 可接收郵件的主機名或域名
mynetworks 設定可轉發哪些主機的郵件
relay_domains 設定可轉發哪些網域的郵件
  1. 安裝postfix
yum install postfix


vim /etc/postfix/main.cf
# 修改內容:
# 75行: 取消註釋,設定hostname 
myhostname = mail.abc.com 
# 83行: 取消註釋,設定域名 
mydomain = abc.com 
# 99行: 取消註釋 
myorigin = $mydomain 
# 116行: 預設是localhost,我們需要修改成all
inet_interfaces = all 
# 119行: 推薦ipv4,如果支援ipv6,則可以為all 
inet_protocols = ipv4 
# 164行: 新增 
mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain 
# 264行: 取消註釋,指定內網和本地的IP地址範圍 
mynetworks = 127.0.0.0/8
# 419行: 取消註釋,郵件儲存目錄
 home_mailbox = Maildir/ 
# 571行: 新增 
smtpd_banner = $myhostname ESMTP 
# 新增到最後 
# 規定郵件最大尺寸為10M 
message_size_limit = 10485760 
# 規定收件箱最大容量為1G 
mailbox_size_limit = 1073741824 
# SMTP認證 
smtpd_sasl_type = dovecot 
smtpd_sasl_path = private/auth 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous 
smtpd_sasl_local_domain = $myhostname 
smtpd_recipient_restrictions = permit_mynetworks,permit_auth_destination,permit_sasl_authenticated,reject


開啟postfix服務並新增到系統自啟

systemctl  restart  postfix
systemctl  enable  postfix

安裝並配置dovecot


安裝dovecot

yum install dovecot


編輯檔案dovecot.conf

vim /etc/dovecot/dovecot.conf 
# 更改內容:
# 26行: 如果不使用IPv6,請修改為* 
listen = *
#在主配置檔案中的第48行,設定允許登入的網段地址,也就是說我們可以在這裡限制只有來自於某個網段的使用者才能使用電子郵件系統。如果想允許所有人都能使用,則不用修改本引數
login_trusted_networks = 192.168.10.0/24更改內容

編輯檔案10-auth.conf

vim /etc/dovecot/conf.d/10-auth.conf 
# 更改內容:
# 9行: 取消註釋並修改 disable_plaintext_auth = no 
# 97行: 新增 auth_mechanisms = plain login

編輯檔案10-mail.conf

vim /etc/dovecot/conf.d/10-mail.conf
# 更改內容:
# 30行: 取消註釋並新增 mail_location = maildir:~/Maildir

編輯檔案10-master.conf

vim /etc/dovecot/conf.d/10-master.conf
# 更改內容:
# 88-90行: 取消註釋並新增 # Postfix smtp驗證 
unix_listener /var/spool/postfix/private/auth { 
mode = 0666 
user = postfix
group = postfix
}

注意:如果我們沒有使用ssl的話需要進行下面的操作。使用了則不需要。

編輯檔案10-ssl.conf

vim /etc/dovecot/conf.d/10-ssl.conf 
# 更改內容:
# 8行: 將ssl的值修改為 ssl = no
  1. 開啟dovecot服務並新增到系統自啟
systemctl restart dovecot
systemctl enable dovecot

五、收發郵件測試

  1. 建立使用者
useradd admin
echo "admin:lhr" | chpasswd
  1. 使用FOXMAIL登陸
    在這裡插入圖片描述

1中我們需要選擇我們之前開放埠對應的伺服器型別。

2中 我們只需要填入我們的使用者名稱,例如admin,root

3中 我們收件和發件都填入我們的mail.域名。例 mail.abc.com

4 中 我們如果使用了ssl的話就需要勾選,如果沒有使用的話就不需要勾選

注意事項

我們郵件伺服器在設定mynetworks 這個值的時候,一行不要設定all,因為會有很多伺服器會將你的伺服器作為中轉郵件伺服器,最終導致的你的郵件伺服器傳送的郵件被qq,163,gamil,這些郵件服務商標記為垃圾郵件。

當某天我們檢查我們的mail日誌(/var/log/maillog)時發現很多郵件傳送,而且郵件不是我們自己產生的話,那麼我們的郵件伺服器是出了問題的

這時我們伺服器一定有很多郵件堆積,然後自己郵件會發不出去。

我們需要做的操作:檢查

du -sh /var/spool/postfix/*

檢視目錄下的defer和deferred的目錄大小,透過postqueue –p來檢視佇列的郵件,透過postsuper -d ALL 刪除所有的佇列郵件。



在本機測試一下發信功能是否正常。命令列中的測試工作可以透過telnet命令進行。例如:可以連線到郵件伺服器的25埠,並輸入相關的SMTP命令, 以郵件賬戶yxz@topsecedu.com作為發件人, 給cqq@topsecedu.com傳送一封測試郵件

-- 發郵件測試
[root@lhroggdirector /]# telnet mail.lhr.com 25
Trying 172.17.0.2...
Connected to mail.lhr.com.
Escape character is '^]'.
220 mail.lhr.com ESMTP
helo mail.lhr.com
250 mail.lhr.com
mail from: lhr@lhr.com
250 2.1.0 Ok
rcpt to: lhrbest@qq.com
250 2.1.5 Ok
data
354 End data with <CR><LF>.<CR><LF>
helo:
this is a test
.
250 2.0.0 Ok: queued as 2935C2407FC
quit
221 2.0.0 Bye
Connection closed by foreign host.






About Me

........................................................................................................................

● 本文作者:小麥苗,部分內容整理自網路,若有侵權請聯絡小麥苗刪除

● 本文在個人微 信公眾號( DB寶)上有同步更新

● QQ群號: 230161599 、618766405,微信群私聊

● 個人QQ號(646634621),微 訊號(db_bao),註明新增緣由

● 於 2020年9月 在西安完成

● 最新修改時間:2020年9月

● 版權所有,歡迎分享本文,轉載請保留出處

........................................................................................................................

小麥苗的微店

● 小麥苗出版的資料庫類叢書: http://blog.itpub.net/26736162/viewspace-2142121/

小麥苗OCP、OCM、高可用、DBA學習班http://blog.itpub.net/26736162/viewspace-2148098/

● 資料庫筆試面試題庫及解答: http://blog.itpub.net/26736162/viewspace-2134706/

........................................................................................................................

請掃描下面的二維碼來關注小麥苗的微 信公眾號( DB寶)及QQ群(230161599、618766405)、新增小麥苗微 信(db_bao), 學習最實用的資料庫技術。

........................................................................................................................

 

 



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26736162/viewspace-2719180/,如需轉載,請註明出處,否則將追究法律責任。

相關文章