Linux搭建邮件服务器postfix
服務簡介
postfix是Wietse Venema在IBM的GPL協議之下開發的MTA(郵件傳輸代理)軟件。postfix是Wietse Venema想要為使用最廣泛的sendmail提供替代品的一個嘗試。在Internet世界中,大部分的電子郵件都是通過sendmail來投遞的,大約有100萬用戶使用sendmail,每天投遞上億封郵件。這真是一個讓人吃驚的數字。Postfix試圖更快、更容易管理、更安全,同時還與sendmail保持足夠的兼容性。
郵件服務器也采用的是C/S工作模式,通過SMTP,POP,IMAP協議來是實現郵件的發送和接收的。
SMTP 的全稱是“Simple Mail Transfer Protocol”,即簡單郵件傳輸協議。它是一組用于從源地址到目的地址傳輸郵件的規范,通過它來控制郵件的中轉方式。SMTP 協議屬于 TCP/IP 協議簇,它幫助每臺計算機在發送或中轉信件時找到下一個目的地。SMTP 服務器就是遵循 SMTP 協議的發送郵件服務器。 SMTP 認證,簡單地說就是要求必須在提供了賬戶名和密碼之后才可以登錄 SMTP(postfix) 服務器,這就使得那些垃圾郵件的散播者無可乘之機。 增加 SMTP 認證的目的是為了使用戶避免受到垃圾郵件的侵擾。 使用的端口是25,SMTP信件認證協議SMTPS,使用的端口是465
POP3是Post Office Protocol 3的簡稱,即郵局協議的第3個版本,它規定怎樣將個人計算機連接到Internet的郵件服務器和下載電子郵件的電子協議。它是因特網電子郵件的第一個離線協議標準, 協議允許電子郵件客戶端下載服務器上的郵件,但是在客戶端的操作(如移動郵件、標記已讀等),不會反饋到服務器上,比如通過客戶端收取了郵箱中的3封郵件并移動到其他文件夾,郵箱服務器上的這些郵件是沒有同時被移動的 。使用的端口是110,POP3信件認證協議POP3S,使用的端口是995
IMAP全稱是Internet Mail Access Protocol,即交互式郵件存取協議,它是跟POP3類似郵件訪問標準協議之一。不同的是,開啟了IMAP后,您在電子郵件客戶端收取的郵件仍然保留在服務器上同時在客戶端上的操作都會反饋到服務器上,如:刪除郵件,標記已讀等,服務器上的郵件也會做相應的動作。所以無論從瀏覽器登錄郵箱或者客戶端軟件登錄郵箱,看到的郵件以及狀態都是一致的。將郵件留在服務器端直接對郵件進行管理、操作,比POP3更先進支持郵件頭部預覽主題來源,基于TCP/IP,使用143端口,使用的端口是110,IMAP信件認證協議IMAPS,使用的端口是993
POP3 和 IMAP 區別
1.IMAP客戶端上收取郵件后郵件依舊保留在服務器上,同時在客戶端上的操作也會保留在服務器端,POP3不會
2.IMAP更好的支持從多個設備中隨時訪問新郵件
3.IMAP提供的摘要游覽功能可以讓你閱讀完所有的郵件到達時間、主題、發件人、大小等信息后才作初是否下載的決定。
4.pop3需要下載所有的郵件,IMAP不能將所有的郵件下載,而是通過客戶端直接對服務器上的郵件進行操控。所有的IMAP
可以對數據進行加密從而保證通信安全。
5.IMAP整體上為用戶帶來了更為便捷和可靠的的體驗 ----pop3 更容易丟失郵件或者多次重復下載相同的郵件。
SASL 全稱Simple Authentication and Security Layer,是一種用來擴充C/S模式驗證能力的機制。在 Postfix可以利用SASL來判斷用戶是否有權使用轉發服務,或是辨認誰在使用你的服務器。
案例一:mail命令的使用
安裝postfix郵件發送服務包
[root@localhost ~]# yum install postfix -y
發送郵件需要啟動服務,在關閉一下防火墻和selinux
[root@localhost ~]# systemctl restart postfix.service
[root@localhost ~]# systemctl stop firewalld
[root@localhost ~]# setenforce 0
添加測試郵件用戶
[root@localhost ~]# useradd zhangsan
[root@localhost ~]# useradd lisi
測試需要mail命令,我們需要安裝mailx軟件包,相當于一個郵件客戶端程序
[root@localhost ~]# yum install mailx -y
發送郵件
[root@localhost ~]# mail to zhangsan
默認是當前用戶是發起者這里是root用戶,to后面跟的是接受者
Subject是郵件的主題
Subject下面的是郵件的內容
.表示的結束符號,也可以用ctrl+d結束
切換用戶,使用mail查看信件
可以看出我們默認的域是localhost.localdomain
輸入信件前面的編號可以查看信件,按q表示退出
所以發送郵件的完整格式是:
[zhangsan@localhost ~]$ mail to lisi@localhost.localdomain
還可以在/var/spool/mail/用戶下查看信件信息
非交互式地發送郵件:
[root@localhost ~]# echo "這是內容" | mail -s "郵件主題" zhangsan@localhost.localdomain
-s后面指定的是標題內容
[root@localhost ~]# echo -e "這是內容\n 你好張三" | mail -s "郵件主題" zhangsan@localhost.localdomain
-e后面可以跟轉義字符,\n是換行
[root@localhost ~]# mail -s "主題" -a /root/a.txt lisi@localhost.localdomain < /root/a.txt
-a后面跟的是附件需要用到重定向符<后面跟的是發送的文件
案例二:郵件群發
需要更改/etc/aliases文件,默認執行的是/etc/aliases.db文件
更改/etc/aliases配置文件,實現群發
使用[root@localhost ~]# postalias /etc/aliases將指定文件轉成.db文件
測試群發
[root@localhost ~]# mail to RHCE默認是本地域(@localhost.localdomain)發送,所以后面可以不用跟域信息
案例三:給外網郵件服務器發送郵件
一般Linux系統自帶mail命令,不能使用該命令可以安裝mailx服務包
需要確定我們的Linux主機可不可以訪問外網,可以ping一下百度看一下ping不ping的通
1. 首先在/etc/mail.rc文件中添加(需要root權限):
怎么獲取163郵箱的授權密碼
[root@localhost ~]# echo "test" | mail -s "主題" (自己的郵箱)
注意這里只有使用非交互式發送郵件
案例四:搭建郵件服務器(單域郵件收發)
準備工作:在windo上下載一個Foxmail軟件,用于后期的測試,軟件下載地址:https://www.foxmail.com/
1.首先更改配置文件
#配置郵件服務器主機名 94 myhostname = mail.openlab.com #配置域名(這個郵件服務器管理的是哪個區域范圍的郵件發送) 102 mydomain = openlab.com #指定郵件發送時的域名 (寫信人) 118 myorigin = $mydomain #指定網絡接口(默認只監聽本地但是如果要與外界通信那么就要監聽所有地址) 132 inet_interfaces = all #指定服務器的目標區域 設置郵件可以發送到哪些域名(收件人) 184 mydestination = $myhostname, localhost.$mydomain, localhost, $mydomain #指定允許網絡網段地址,設置信任的郵件客戶端地址 283 mynetworks = 192.168.229.0/24
2.安裝,配置dovecot服務 dovecot是一個郵件接收服務
[root@localhost ~]# yum install dovecot -y
編輯主配置信息/etc/dovecot/dovecot.conf
[root@localhost ~]# vim /etc/dovecot/dovecot.conf
編輯子配置文件信息/etc/dovecot/conf.d/10-mail.conf
3.重啟服務
[root@localhost ~]# systemctl restart postfix.service
[root@localhost ~]# systemctl restart dovecot
4.給測試用戶添加密碼
[root@localhost ~]# echo redhat | passwd --stdin zhangsan
[root@localhost ~]# echo redhat | passwd --stdin lisi
5.更改權限chmod 600 /var/mail/*
注意:如果不執行上面這個命令,可能會出現在系統中可以收到郵件,但是客戶端無法收到郵件,注意查看系統tail -f /var/log/maillog日志
6.在Windows上打開Foxmail進行測試
點擊 其他郵箱---------->手動配置---------->輸入信息---------->創建
在添加一個用戶進行測試
點擊 設置---------->賬號管理----------->新建
發送郵箱,進行測試
案例五:域外互訪
實驗環境:兩臺虛擬機
在另一臺虛擬機進行和上面一樣的配置,注意把域信息改一下
驗證一下本地域下是否能否正常發送信件
要實現雙域之間的發送必須配置DNS不會配置的可以看我之前寫的博客DNS服務的搭建
在baidu域(百度域ip為192.168.229.130)中向openlab域發送郵件需要進行以下配置
[root@localhost ~]# vim /etc/named.conf
[root@localhost ~]# vim /var/named/named.openlab.com
[root@localhost ~]# vim /etc/resolv.conf
[root@localhost ~]# nslookup mail.openlab.com
實現openlab域向baidu域發送信件,進行配置
[root@localhost ~]# vim /etc/named.con
[root@localhost ~]# vim /var/named/named.baidu.com
在openla服務器中更改DNS
[root@localhost ~]# vim /etc/resolv.conf
[root@localhost ~]# nslookup mail.baidu.com
郵箱驗證
總結
以上是生活随笔為你收集整理的Linux搭建邮件服务器postfix的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 专家视点:杜绝木马的干扰-防范后门的技巧
- 下一篇: 百度贴吧界面html程序代码,如何把自己