linuxmail伺服器搭建
Ⅰ linux 命令模式下怎麼配置郵件伺服器
Linux什麼系統的?如果是AS5.5的話...那我現在在下面打的就是=
=...
十分還真不好拿啊~建議LZ加點分-
-看在寫的那麼辛苦的份上..
物理機IP:192.168.10.100
域名:www.aiy.com
首先先設置DNS
mkdir
/mnt/cdrom
mount
-t
iso9660
/dev/cdrom
/mnt/cdrom
(掛載ISO...因為我用的是虛擬機=
=沒有光碟..)
cd
/mnt/cdrom/Server/
rpm
-ivh
caching-chroot-9.3.3-7.el5.i386.rpm
rpm
-ivh
bind-*
vim
/etc/name.rfc1912.zones
=
=裡面配置文件太長了...直接說哪一行吧-
-反正都差不多~只要是AS5.5的話
15行:localdomin修改為aiy.com
17行:localdomain.zone改為aiy.com.zone
27行:0.0.127改為本地前三位倒過來...10.168.192
29行:name.local改為192.168.10.zone
輸入Shift+;
然後輸入wq!強制保存並退出
vim
/etc/named.caching.nameserver.conf
15行127.0.0.1改為any
23行localhost改為any
32行、33行localhost改為any
cd
/var/named/chroot/var/named
cp
-p
localdomain.zone
aiy.com.zone
cp
-p
named.local
192.168.10.zone
vim
aiy.com.zone
在最後加mail
(TAB鍵對齊就好了)
IN
A
192.168.10.100
aiy.com
IN
MX
5
mail.aiy.com
同樣
輸入Shift+;
然後輸入wq!強制保存並退出
vim
192.168.10.zone
同樣在最後加100
IN
PTR
mail.aiy.com(注意空格同樣是tab)
輸入Shift+;
然後輸入wq!強制保存並退出
(=
=下面的話這兩句忽略掉了...太麻煩了)
ln
-s
aiy.com.zone
/var/named/
ln
-s
192.168.3.zone
/var/named/
vim
/etc/resolv.conf
nameserver
192.168.10.100
service
named
restart
試試
nslookup
mail.aiy.com
=
=DNS打完...然後MAIL等下繼續..先提交保存=
=
-
-現在繼續..
-
-繼續...掛載省略了...直接安裝
cd
/mnt/cdrom/Server
rpm
-ivh
m4-*
rpm
-ivh
sendmail-*
(一開始安裝系統時候我沒安裝...所以現在掛載~如果一開始有選sendmail的話54掉就可以了..=
=再次~)
前面其實就設置好了mail服務的DNS...
cd
/etc/mail
vim
local-host-names
在最下面輸入aiy.com
vim
sendmail.mc
116行127.0.0.1改為0.0.0.0
m4
sendmail.mc
>
sendmail.cf
cd
/etc/init.d
./saslauthd
restart
./sendmail
restart
./dovecot
restart
useradd
aiy
建立aiy用戶
passwd
aiy
123456
123456
用戶aiy密碼設置為123456
mail
[email protected]
123
(標題)
123
(內容)
ctrl+d
然後信息就發完了..
T.T終於輪到測試了~...
su
aiy
切換到aiy用戶
mail
查看aiy用戶的mail
=
=這樣就完了...現在發現aiy裡面有份root郵件吧...T.T
還能輸入
8917
字-
-不知不覺打了很多字了=
=
我QQ
1842534312不懂可以問我..
-0-可以轉載~但是請保留全部...
Ⅱ LINUX郵件伺服器搭建
1. 用以下命令查看系統是否安裝了sendmail:
[root@mail /root]# rpm –qa |grep sendmail
sendmail-8.11.0-8
2. 卸載sendmail:
[root@mail /root]# rpm -e sendmail –nodeps
3. 用以下命令殺死運行中的sendmail進程:
[root@mail /root]# killall sendmail
如果系統提示:
sendmail: no process killed
則說明當前系統中沒有sendmail進程。
4. 安裝postfix:
[root@mail /root]# rpm -ivh postfix-20010228release-2.i386.rpm
若已經安裝,則此步可以省略。(註:安裝時最好用rpm包,會自動創建postfix用戶和postfix組)
5. 安裝imap
rpm –ivh /mnt/cdrom/RedHat/RPMS/ imap-4.7c2-12.rpm
imap使pop3有效,即打開110埠。(註:安裝時最好用rpm包)
若已經安裝,則此步可以省略。
6. 檢查系統中是否安裝了cyrus-sasl
執行以下命令查看系統中是否安裝了cyrus-sasl:
rpm –qa |grep cyurs
如果您看到以下提示,則說明已經安裝了cyrus-sasl
[root@test bye2000]# rpm -qa |grep sasl
cyrus-sasl-devel-1.5.24-17
cyrus-sasl-1.5.24-17
否則,請用rpm –ivh 命令先安裝所需sasl-cyrus包。
7.修改postfix用戶
同時應該讓該用戶不能登錄到系統,也即不為該用戶指定可執行的登錄外殼程序和可用
的用戶宿主目錄。
編輯/etc/passwd文件中的相關條目如下所示:
postfix:x:89:89::/no/where:/no/shell [編輯後,只修改藍色部分就可以了]
即:修改用戶的Home directory和Shell 參照 /etc/passwd文件
8.編輯postfix的主要配置文件/etc/postfix/main.cf,根據需求只需修改以下幾個參數:
1)mydomain
指明你的域名,在這里我們指定:
mydomain = xx.com
2)myorigin
myorigin參數指明發件人所在的域名。如果你的用戶的郵件地址為[email protected],則該參數指定@後面的域名。在這里我們指定:
myorigin = $mydomain
3)inet_interfaces
inet_interfaces = all 監聽所有埠
4)mydestination
mydestination參數指定postfix接收郵件時收件人的域名,換句話說,也就是你的postfix
系統要接收什麼樣的郵件。通常與myorigin一樣:
mydestination = $mydomain
5)mynetworks_style
設置網路類型,我們指定:
mynetworks_style = subnet
6)ynetworks
定義可以使用的此smtp伺服器發信的客戶ip地址,因為公司的ip范圍已知,所以我們
指定:
mynetworks = 192.168.1.0/24
註:此項可根據情況而定,主要是指定ip范圍,假如公司的ip劃分是按照網段來的,例如:10.10.1.0~10.10.1.9,10.10.3.0~10.10.3.9等等更細。根據需要,該項可以不設置。
7)SMTP的配置
為了告訴postfix採用sasl來進行SMTP的用戶認證,我們必須在/etc/postfix/main.cf文件的最後添加以下幾行:
smtpd_sasl_auth_enable = yes
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
broken_sasl_auth_clients = yes
smtpd_sasl_security_options = noanonymous
說明如下:
smtpd_sasl_auth_enable:告訴SMTP客戶,該SMTP伺服器需要進行用戶認證。
smtpd_recipient_restrictions = permit_sasl_authenticated
permit_auth_destination reject
僅僅中繼通過SMTP認證的客戶端郵件,以及接收本postfix為最後一站的郵件。
broken_sasl_auth_clients = yes
有一些Microsoft 的SMTP客戶端,比如Outlook Express 4.X採用的是非標準的SMTP認證協議,將該選項設置為yes可以解決這類不兼容問題。
smtpd_sasl_security_options = noanonymous
控制本地SMTP認證所採用的機制,這里是允許任何非匿名認證方法。
9.配置SASL
進入/usr/lib/sasl/目錄,用touch新建這樣一個文件:
[root@test sasl]# touch smtpd.conf
在該文件中加入以下內容:
[root@test sasl]# more smtpd.conf
pwcheck_method:pam
也就是指定通過PAM來進行用戶認證。
10.配置PAM
進入/etc/pam.d/目錄,用touch新建這樣一個文件:
[root@test pam.d]# touch smtp
在該文件中加入如下內容:
[root@test pam.d]# more smtp
#%PAM-1.0
auth required /lib/security/pam_stack.so service=system-auth
account required /lib/security/pam_stack.so service=system-auth
也即和/etc/pam.d/pop文件的內容是一致的。
11.修改/etc/shadow文件許可權
因為PAM最終要去讀取/etc/shadow文件的內容來進行用戶認證,但是/etc/shadow文件
許可權是設置為只有root用戶可以讀寫,而我們的postfix是運行在postfix用戶許可權之下,所以我們要合理的設置/etc/shadow文件許可權,以便讓pam可以讀取其內容。
執行以下命令,讓root組也可以讀取shadow:
[root@test /etc]# chmod 640 /etc/shadow
然後再將postfix用戶加入root組,採用以下命令:
[root@test /etc]# usermod -G root postfix
12.編輯postfix的主要配置文件/etc/postfix/master.cf
# ==========================================================================
# service type private unpriv chroot wakeup maxproc command + args
# (yes) (yes) (yes) (never) (100)
# ==========================================================================
smtp inet n - n - - smtpd
這里開始
#smtps inet n - n - - smtpd
# -o smtpd_tls_wrappermode=yes -o smtpd_sasl_auth_enable=yes
#submission inet n - n - - smtpd
# -o smtpd_enforce_tls=yes -o smtpd_sasl_auth_enable=yes
這里結束
#628 inet n - n - - qmqpd
把我標的注釋部分去掉即可。
13.配置pop3
RedHat7.0已經使用xinetd代替了以前的inetd,為了使pop3服務啟動,我們編輯
/etc/xinetd.d/ipop3文件,將其中的disable = yes改為disable = no 以便啟動pop3
服務。
為了使改動生效,執行以下命令:
/etc/rc.d/init.d/xinetd reload
14.啟動postfix
執行以下命令啟動postfix:
/etc/rc.d/init.d/postfix start
這樣,一個支持SMTP認證的postfix郵件伺服器就配好了。
Ⅲ linux下的sendmail如何配置
sendmail的功能強大,配置起來也十分繁瑣。本例僅介紹如何架設小型的區域網電子郵局。
1、設置sendmail 作為守衛進程(daemon)啟動
可以使用以下命令來確認 sendmail 是否已經啟動:ps –A|grep sendmail
如果啟動了 sendmail,那麼這個命令將顯示出它的相關信息。如果沒有啟動,則需要在/etc/rc.d/rc.net 文件中加上如幾行代碼:
if [-f /usr/lib/sendmail ];
then(cd /usr/spool/mqueue;rm –f if *)
/usr/lib/sendmail-bd-qlh;echo –n 『sendmail』>/dev/console
fi
2、設置sendmail.cf
sendmail.cf是sendmail的配置文件。在安裝了 Linux 系統之後,它將自動生成一個適合本系統使用的 sendmail.cf 文件,位於/etc/sendmail.cf
3、開啟SMTP、POP 埠
在默認情況下,SMTP 埠是打開的,而 POP埠是關閉的,我們必須將它打開:
1)用 root(超級許可權)登錄到伺服器上;
2)編輯文件/etc/inetd.conf;
3)找到描述 POP 埠的語句:#pop3 stream tcp nowait root /usr/sbin/tcpd /usr/sbin/in.pop3d
4)將 POP3的描述語句那一行的注釋號「#」去掉。
5)如果沒有找到,就手工補上這一行;(另外,我們還可以驗證一下是否存在 SMTP埠的描述語句) ;
6)存檔後退出。
7)運行 inetd 命令,使得設置生效。
8)用以下命令驗證,看 POP3 埠是否打開(生效):netstat –a |grep pop
如果打開的話,可以看到以下信息:tcp 0 0 *:pop3 *:* LISTEN
4、為新用戶開E-Mail 帳號
在 Linux 中開設 E-Mail 帳號十分簡單,只要在 Linux 系統中新增一個用戶即可。該用戶帳號和密碼就是E-Mail 的帳號和密碼。如:為新用戶 guest 開一個E-Mail帳號,用以下命令即可:
adser guest passwd guest
這樣,該新用戶的 E-Mail 地址就是:[email protected] ;密碼為:guest
5、為E-Mail 帳號設置別名
如果某個用戶想使用多個 E-Mail 地址,可通過設置別名的方法來實現。比:用戶「杜
方冬」想同時擁有 E-Mail 地址:[email protected] ;[email protected] ;[email protected]
就可通過以下步驟來實現這樣的別名設置:
1)以 root 登錄伺服器;
2)新增一個賬號 dfd;
3)編輯文件/etc/aliases,加上兩行:
fd:dfd
fd2000:dfd
4)存檔退出;
5)執行命令: newaliases
這樣,用戶杜方冬就擁有三個郵件地址,杜方冬只需使用一個E-Mail 帳號:[email protected]就可以接收所有寄給以上三個E-Mail 郵件地址的電子郵件。
6、郵箱空間的限定
如果你想控制用戶郵箱空間的大小,可以對它進行限定。實現方法是利用磁碟限額功能來實現的。電子郵件的暫存空間是在/var/spool/mail 目錄下,只要通過磁碟限額設定每一個用戶在這個目錄下能使用的最大空間就可以了。
Ⅳ 141Linux 安裝及配置郵件伺服器
效果截圖
Sendmail :sendmail 是最古老的 MTA(Mail Transfer Agent,電子郵件系統)之一,最早它誕生的時候,Internet 還沒有被標准化,當時主機之間使用的是 UUCP 技術來交換郵件。它被設計得比較靈活,便於配置和運行於各種類型的機器。
Qmail :qmail 是新生一代的 MTA 代表,它以速度快、體積小、易配蘆巧置安裝等特性而著稱。作者 D.J.Bernstein 是一個數學教授,富有傳奇色彩。他於 1995 年開發 qmail,1996 年發布 0.70 版,並使用了多種當時比較先進的 技術,包括 Maildir,與 sendmail 單個 binary 不同的模塊化設計,許可權分離,以及使用了大量由他編寫的配套工具,如 daemontool,ucsip-tcp 等。qmai 迅速成為了 Internet 上最有名的 MTA,使用者眾。
postfix :postfix 如今已經獨樹一幟,流水線、模塊化缺灶的設計,兼顧了效率和功能。靈活的配置和擴展,使得配置 postfix 變得富有趣味。其主要的特點是速度快、穩定,而且配置/功能非常強大,並和 sendmail 類似,提供了與外部程序對接伏嘩扮的 API/protocol。尤其是配置部分,postfix 另一個優勢是至今依然保持活躍的開發工作,而且穩步發展,適合高流量大負載的系統,擴充能力較強。本實驗也是基於 postfix 伺服器軟體來實現。
郵件伺服器基本的工作原理
MUA(Mail User Agent):向外發送郵件,以及提供用戶瀏覽與編寫郵件的功能。
MTA(Mail Transfer Agent):(可以理解為 smtpd 伺服器)幫忙將用戶的郵件傳遞出去或接收進來。
MDA(Mail Delivery Agent):將接收下來的郵件存放到對應用戶郵筒當中的程序。通過分析 MTA 所收到郵件的表頭或內容,來判斷此郵件是屬於哪個用戶,然後決定將此郵件投遞給哪個用戶的郵筒里。
MRA(Mail Retrieval Agent):通過 MRA 伺服器提供的郵政服務協議(POP)來接收自己的郵件。
郵件中繼:
SMTPD 要支持郵件路由功能,需要打開 Open Relay 開放式中繼。
SMTPD 是根據收件人判斷郵件是否需要中繼,而且只給指定的客戶端中繼。
註:當 DNS 上存在多個 MX 記錄的主機這時就是根據 DNS 的郵件級判斷了。DNS 上定義的值越小,其優先順序越高。輔助交換器接受到郵件並不能保存郵件。而是這個輔助交換器會等到主郵件交換器空閑的時候把代替它接受下來的郵件在轉給主郵件交換器。所以任何郵件處理都是主郵件交換器處理的。所以我們實際情況下,如果有 2 台伺服器做郵件交換器,性能比較高的應該為主的。
安裝配置過程中,postfix 通過 Internet 發送和接收 email,並存儲在用戶郵箱里。同時客戶也可以通過 IMAP 或者 POP3 恢復他們的郵件。其中的客戶認證是通過 Courier Authdaemon 模塊的。下圖表示出了這個過程:
出現安裝界面時,首先按下 <tab> 鍵切換到確定,然後按下回車。
安裝 postfix 的時候會問你安裝的伺服器類型,對於我們的需要,我們選擇默認的 Internet Site,這是最符合我們的伺服器類型,然後按下回車確認。
使用 vim 編輯配置文件:
大概在第 31 行,編輯 myhostname,修改為 myhostname = shiyanlou.com。
然後我們把alias_map參數修改為 alias_maps = hash:/etc/postfix/virtual,之後會講解virtual裡面填寫什麼。
之後設置mynetworks段落,它定義可以使用這台伺服器的主機,我們這里就用默認的本地地址。你也可設置為其他地址。
編輯完成後按下 Esc 鍵,輸入 :wq 保存退出。
此命令創建了一個用戶 master,其中 -d 和 -m 選項用來為登錄名 master 產生一個主目錄 /usr/master(/usr 為默認的用戶主目錄所在的父目錄)。
我們編寫之前設置的 virtual 文件,這些郵箱地址是用來傳送郵件的。
在這個文件里,我們將設置一個表,對應相關的郵件地址。
完成後保存關閉文件。
我們可以通過調用下面這個命令來實現我們的映射:
接著我們重啟 postfix,完成我們的修改:
我們可以用 shiyanlou 這個賬號給 master 這個賬號發一封郵件。首先我們需要安裝一個命令行收發郵件的軟體 mailutils 。
寫一封郵件
輸入如下內容:
其中 -s 參數是指郵件的標題,< 後面是將要發送的郵件內容從 hello.txt 中重定向。這個命令如果正確執行不會有輸出。
然後我們切換到 master 用戶,查看我們的郵件。
按下回車建可以查看郵件內容,輸入 quit 即可退出郵箱。
Linux 郵件伺服器原理介紹,編譯安裝 Postfix 實現本地的郵件服務
Ubuntu 伺服器指南-郵件服務-Postfix
how-to-run-your-own-mail-server-with-mail-in-a-box-on-ubuntu-14-04
Ⅳ linux redhat9怎麼搭建sendmail郵件伺服器
一.安裝Sendmail 完全安裝Red Hat Linux 9.0時,Sendmail就會自動內置,版本號為8.12.8-4。如果你不確定Linux是否已經安裝有sendmail,可以輸入以下命令查看: [root@ahpeng root] rpm–qagrep sendmail 如果確定沒有安裝,請在圖形界面下依次選擇單擊「主菜單-系統設置-添加刪除應用程序」,然後在打開的「軟體包管理」窗口裡選中「郵件伺服器」選項,點「更新」後按照提示安裝即可。 另一種辦法是:直接插入Linux第1張安裝光碟,選擇/RedHat/RPMS目錄下的sendmail-8.12.8-4.i386.rpm安裝包,之後運行[root@ahpeng RPMS] # rpm -ivh sendmail-8.12.8-4.i386.rpm即可開始安裝,再用此方法在第3張安裝光碟的同目錄下依次安裝sendmail-cf.8.12.8-4.i386.rpm、sendmail-doc. 8.12.8-4.i386.rpm。 二.啟動Sendmail服務系統 筆者建議使用帶參數的Sendmail命令控制郵件伺服器的運行: [root@ahpeng root]#sendmail -bd –q12h -b:設定Sendmail服務運行於後台。 -d:指定Sendmail以Daemon(守護進程)方式運行。 -q:設定當Sendmail無法成功發送郵件時,就將郵件保存在隊列里,並指定保存時間。上面的12h表示保留12小時。 此外,要檢測Sendmail伺服器是否正常運行,可以使用命令行: [root@ahpeng root]# /etc/rc.d/init.d/sendmail status。 三.配置Sendmail sendmail.cf的配置語法比較難懂,一般資料上都是採用m4宏處理程序來生成所需的sendmail.cf文件(使用m4編譯工具一般不容易出錯,還可避免某些帶有安全漏洞的宏對伺服器造成的破壞)。其配置文件位於/etc/mail/sendmail.cf,在創建的過程中還需要一個模板文件,Linux自帶有一個模板文件,位於/etc/mail/sendmail.mc。故可以直接通過修改sendmail.mc模板來達到定製sendmail.cf文件的目的,而不必去死啃哪些難理解的配置命令。配置步驟為: 第一步:用模板文件sendmail.mc生成sendmail.cf配置文件,並導出到/etc/mail/目錄下,使用命令行:m4 /etc/mail/sendmail.mc >/etc/mail/sendmail.cf 第二步:再用[root@ahpeng root] /etc/rc.d/init.d/sendmail restart命令行重啟sendmail。 至此,郵件服務系統配置完成,已經正常工作。接下來就是創建具體的帳戶了。
Ⅵ 求在linux9上架設DNS伺服器和email伺服器的詳細教程
在Linux中配置DNS
----DNS的功用是把計算機的名稱轉換為 IP地址。DNS的使用簡化了系統管理員及客戶對主機文件的操作和維護。
Intranet伺服器的系統配置
----硬體配置:Pentium 133 CPU,32MB內存,2.1G硬碟,16倍速IDE光碟機。
----操作系統:Red Hat Linux 5.1內核升級為2.2.3版。
----軟體包:Apache Web Server 1.3.6;Sendmail 8.9.3; Wu-ftp 2.4.2;DNS。
----1.安裝Red Hat Linux 5.1
----參考README文件,用DOS啟動盤引導,並將光碟機驅動,執行\dosutils\autoload,依照提示進行安裝。軟體包選 WWW、Sendmail、 Ftp、 DNS等,在啟動欄選中inetd、httpd、named、sendmail、 snmp、syslog等。
----2.網卡配置
Config mode: manual
Primary name + domain: Linux.qxj.gov.cn
Aliases:qxj_Linux
IP address:192.168.0.100
Netmask:255.255.255.0
Net device:eth0
Kernel mole:3c509
I/O port:0x210
Irq:11
----預設網關為:192.168.0.1。
DNS的設置
----1.有關參數
域名: qxj.gov.cn
WWW伺服器: www.qxj.gov.cn
Ftp伺服器: ftp.qxj.gov.cn
Mail伺服器: mail.qxj.gov.cn
----2.配置DNS
----①編輯/etc/named.boot,使之為:
directory /var/named
;cache named.ca
primary 0.0.127.in-addr.arpa named.local
primary qxj.gov.cn qxj.gov.cn
----②檢查/etc/host.conf內容為:
order host, bind
multi on
----③檢查文件/etc/resolv.conf為如下內容:
search qxj.gov.cn
nameserver 127.0.0.1
----④編輯或建立/etc/named.conf,內容為:
options {
directory/var/named;
};
zone0.0.127.in-addr.arpa {
type master;
filenamed.local;
};
zoneqxj.gov.cn {
type master;
fileqxj.gov.cn;
};
----⑤檢查/var/named/named.local內容為:
@ IN SOA ns.qxj.gov.cn. hostmaster.qxj.gov.cn. (
1997022700; Serial
28800; Refresh
14400; Retry
3600000; Expire
86400); Minimum
IN NS ns.qxj.gov.cn.
1 IN PTR localhost.
----⑥編輯或建立文件/var/named/qxj.gov.cn:
@ IN SOA ns.qxj.gov.cn. hostmaster.qxj.gov.cn. (
199904261 ;Serial
28800;Refresh
7200;Retry
3000000;Expire
86400);Minimum
IN NS ns.qxj.gov.cn.
* IN MX 10 mail
* IN MX 20 qxj.gov.cn.
localhost A 127.0.0.1
ns A 192.168.0.100
qxj.gov.cn. A 192.168.0.100
mail A 192.168.0.100
news CNAME ns
ftp CNAME ns
www CNAME ns
pc1 A 192.168.0.5
pc2 A 192.168.0.6
winnt A 192.168.0.10
----設置完成後,執行ndc restart重新啟動DNS。
----3.檢查DNS
----執行nslookup,結果應與以下內容相似,說明你已成功了。
$ nslookup
Default Server: localhost
Address: 127.0.0.1
> set q=any
> qxj.gov.cn
Server: localhost
Address: 127.0.0.1
qxj.gov.cn
origin = ns. qxj.gov.cn
mail addr = hostmaster.qxj.gov.cn
serial = 199904261
refresh = 28800(8 hours)
retry = 7200(2 hours)
expire = 3000000(34 days 17 hours 20 mins)
minimum ttl = 86400(1 day)
qxj.gov.cn nameserver = ns.qxj.gov.cn
qxj.gov.cn internet address = 192.168.0.100
qxj.gov.cn nameserver = ns.qxj.gov.cn
ns.qxj.gov.cn internet address = 192.168.0.100
>exit
Ⅶ linux mail伺服器怎麼用
一、概述:
在配置郵件伺服器之前,先解釋幾個概念。
通常使用Email都很容易,但是Internet的郵件系統是通過幾個復雜的部分連接而成的,對於最終用戶而言,我們熟悉的Outlook,Foxmail等都是用來收信和發信的,稱之為MUA:Mail User Agent,郵件用戶代理。
MUA並非直接將郵件發送至收件人手中,而是通過MTA:Mail Transfer Agent,郵件傳輸代理代為傳遞,Sendmail和Postfix就是扮演MTA的角色。
一封郵件從MUA發出後,可能通過一個或多個MTA傳遞,最終到達MDA:Mail Delivery Agent,郵件投遞代理,郵件到達MDA後,就存放在某個文件或特殊的資料庫里,我們將這個長期保存郵件的地方稱之為郵箱。
一旦郵件到達郵箱,就原地不動了,等用戶再通過MUA將其取走,就是用Outlook,Foxmail等軟體收信的過程。
所以一封郵件的流程是:
發件人:MUA --發送--> MTA -> 若干個MTA... -> MTA -> MDA <--收取-- MUA:收件人
MUA到MTA,以及MTA到MTA之間使用的協議就是SMTP協議,而收郵件時,MUA到MDA之間使用的協議最常用的是POP3或IMAP。
需要注意的是,專業郵件服務商都有大量的機器來為用戶服務,所以通常MTA和MDA並不是同一台伺服器,因此,在Outlook等軟體里,我們需要分別填寫SMTP發送伺服器的地址和POP3接收伺服器的地址。
Linux系統下郵件伺服器的搭建(Postfix+Dovecot)
對於網站來說,發送各種例如注冊通知的郵件是很基本的一個需求,之前我一直用的是騰訊的企業郵箱,感覺挺方便的,直接可以綁定QQ郵箱接收郵件,網站配置一下SMTP也就可以發出郵件。
但是在前幾天由於有重要信息需要立即通知用戶,所以選擇了群發郵件的方式。在當我以為一切都是辣么完美的時候,陸續有用戶過來問我什麼情況,我都會跟他們說請查收郵件,但是有好幾個人說並沒有任何
郵件,於是我試著再發一次,結果返回了錯誤提示。在網上找了下原因,後來看到這個:各大免費郵箱郵件群發賬戶SMTP伺服器配置及SMTP發送量限制情況,才知道是因為發信數量限制了。
所以只好另尋出路了,然後我在知乎上面找到了很多個提供郵件發送的服務商,大概有這些:SendGrid、MailChimp、Amazon SES、SendCloud、Mailgun等等,在看了不少人的建議之後,我選擇了Mailgun。
Mailgun注冊和配置都挺簡單,很快我就成功的發出了第一封郵件,懷著這封欣喜,我又發送了幾封郵件,可是悲劇發生在第三封郵件,Mailgun後台有詳細的發送記錄,這個非常不錯,在後台我看到我的郵件被拒收了,原因大概是該伺服器IP的發信頻率超過騰訊郵箱限制。所以這里就涉及到IP的問題,目前第三方的郵件發送服務普遍都是共享IP(後面還試過SendCloud、),而共享IP並不能確定是否已經達到接收方的數量限制,一旦達到了就無法再發送。這就是說還需要使用獨立IP才能保證郵件有較高的到達率,接著就看了各家的獨立IP價格,一般都是二十幾甚至四十幾美刀一個月,這對於我們這種小站長郵件需求不高的來說確實有點貴,買台VPS都不用這個價吧。
經過上面這些折騰,也算明白了如果要想順暢的發出郵件的話,除了花錢,就只有自己搭建一個郵件伺服器了。
好了,下面開始進入正題,教你搭建一個簡單的郵件伺服器。
用於搭建的伺服器信息
阿里雲 Centos 6.5 32位
Postfix-2.8.12.tar.gz Postfix MTA(郵件傳輸代理)
Dovecot-2.1.8.tar.gz IMAP 和 POP3 郵件伺服器
Postfixadmin-2.3.5.tar.gz 採用php編寫的開源WEB郵箱及域名賬號管理工具
Roundcubemail-0.8.1.tar.gz 採用php編寫的開源IMAP郵件WEB客戶端
安裝過程
1.安裝Postfix
yum -y install postfix
安裝完成還需要替換系統自帶的sendmail:
rpm -e sendmail
或者
yum remove sendmail
修改MTA(默認郵件傳輸代理)
alternatives --config mta
然後直接回車即可。
檢查一下是不是已經設置成功了。
alternatives --display mta
第一行可以看到mta的狀態。 例如:mat - status is manual.
2.安裝Dovecot
yum -y install dovecot
3.配置Postfix
編輯/etc/postfix/main.cf,可以下載下來修改,也可以使用vi進行編輯:
vi /etc/postfix/main.cf
修改如下:
# 75行: 取消注釋,設置hostname
myhostname = mail.lomu.me
# 83行: 取消注釋,設置域名
mydomain = lomu.me
# 99行: 取消注釋
myorigin = $mydomain
# 116行: 修改
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, 10.0.0.0/24
# 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
修改好了之後使用/etc/rc.d/init.d/postfix start開啟postfix,使用chkconfig postfix on將postfix開機啟動。
4.配置Dovecot
修改如下:
[root@mail ~]# vi /etc/dovecot/dovecot.conf
# 26行: 如果不使用IPv6,請修改為*
listen = *
[root@mail ~]# vi /etc/dovecot/conf.d/10-auth.conf
# 9行: 取消注釋並修改
disable_plaintext_auth = no
# 97行: 添加
auth_mechanisms = plain login
[root@mail ~]# vi /etc/dovecot/conf.d/10-mail.conf
# 30行: 取消注釋並添加
mail_location = maildir:~/Maildir
[root@mail ~]# vi /etc/dovecot/conf.d/10-master.conf
# 88-90行: 取消注釋並添加
# Postfix smtp驗證
unix_listener /var/spool/postfix/private/auth {
mode = 0666
user = postfix
group = postfix
}
[root@mail ~]# /etc/rc.d/init.d/dovecot start
Starting Dovecot Imap: [ OK ]
[root@mail ~]# chkconfig dovecot on
到這里,我們的郵件伺服器就已經搭建成功了。
5.域名解析
最後別忘了還需要進行域名解析工作。
添加一個子域名mail,A記錄解析到伺服器IP。
再添加一個MX記錄,主機記錄為空,記錄值為上面解析的二級域名mail.lomu.me,優先順序10。
注意:解析生效可能需要一段時間。
6.防火牆設置
/sbin/iptables -A INPUT -p tcp --dport 25 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 110 -j ACCEPT
/sbin/iptables -A INPUT -p tcp --dport 143 -j ACCEPT
突破封鎖25口的轉發
/sbin/iptables -t nat -A PREROUTING -p tcp -m tcp --dport 10025 -j REDIRECT --to-ports 25
7.郵箱使用
一切都弄好以後,就可以使用Foxmail等第三方軟體來收發郵件了。在這里需要說一下,系統用戶就是郵件的用戶,例如root,就是一個郵箱用戶,郵箱是[email protected],密碼就是root的密碼,所以需要創建用戶,只要使用useradd創建用戶,再使用passwd設置密碼。
好了,假如我們創建一個admin的用戶:
# 創建用戶
useradd admin
#設置密碼,會要求輸入兩次密碼
passwd admin
接下來登錄Foxmail,如圖:
點擊創建,進入:
這里需要注意,郵件賬號是admin,並不是郵箱,另外我們沒有配置SSL,所以也不要勾選。 接下來點擊創建,如果一切正常的話,你已經成功了。