天天看點

郵件伺服器之sendmail的簡單配置

郵件伺服器之sendmail的簡單配置

安裝軟體名  

1、 sendmail     sendmail主程式

2、 sendmail-cf   可以說是幫助了解sendmail文法配置

3、 m4          轉換工具

rpm -ivh sendmail-cf-8.13.8-2.el5.i386.rpm

Sendmail和m4系統預設應經安裝(我的是RedHat5.4的版本)

[root@RHEL mail]# service sendmail start

啟動 sendmail:

[root@RHEL mail]# chkconfig sendmail on  開機啟動

[root@RHEL mail]# netstat -tupln |grep 25

tcp        0      0 127.0.0.1:25   0.0.0.0:*          LISTEN      2774/sendmail: ace

先添加一個使用者

[root@RHEL mail]# useradd user1

[root@RHEL mail]# echo "123" |passwd --stdin user1   設定密碼

檢視主機名

[root@RHEL mail]# hostname 

localhost

用系統root賬戶給user1賬戶發一封郵件,并檢視

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183326558.png"></a>

q 退去時,再次用mail指令檢視時就會“No mail for user1”郵件被儲存在自己的家目錄下的mbox檔案中,如上圖:

x 退去時,不變。。。

此時監聽的ip為127.0.0.1,就是自能監聽本機,其它的客戶機不能用該機的25端口發郵件:如下:

編輯/etc/mail/sendmail.mc 将127.0.0.1改為0.0.0.0如下:

DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, Name=MTA')dnl

重新開機sendmail服務,用客戶機給root發一封垃圾郵件,并檢視

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183530753.png"></a>

      以上可以看出sendmail 無身份驗證,無加密、無防垃圾郵件的功能。但它簡單易用,可以配合第三方軟體來實作以上功能。是以市場佔有率占據50%左右

下面通過一個小執行個體再來深入一下:

Ip位址為192.168.2.100的mail伺服器的域名為wsm.com 和兩個郵件使用者分别為user1、user2

Ip位址為192.168.2.200的mail伺服器的域名為qq.com和兩個郵件使用者分别為user3、user4

拓撲圖如下:

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183439351.png"></a>

1、 首先安裝DNS服務 相關rpm包如下:

rpm -ivh bind-9.3.6-4.P1.el5.i386.rpm

rpm -ivh bind-chroot-9.3.6-4.P1.el5.i386.rpm

rpm -ivh caching-nameserver-9.3.6-4.P1.el5.i386.rpm

cd /var/named/chroot/etc

cp -p named.caching-nameserver.conf named.conf

vim named.conf  修改為如下:

listen-on port 53 { any; };

allow-query     { any; };

allow-query-cache { any; };

match-clients      { any; };

match-destinations { any; };

vim named.rfc1912.zones 添加如下5行

zone "qq.com" IN {

        type master;

        file "qq.com.zone";

        allow-update { none; };

};

cd /var/named/chroot/var/named/

cp -p localhost.zone qq.com.zone

vim qq.com.zone 如下:

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183549721.png"></a>

注:vim /etc/resolv.conf 確定自己的DNS的指向為本機

啟動DNS服務

(關于DNS的詳細配置請參考http://abc16810.blog.51cto.com/3177586/1032963一文)

在郵件用戶端中如outlook讓user1給自己發一封郵件(確定客戶機的dns指向為192.168.2.200即DNS伺服器) 在用戶端測試一下DNS配置是否成功。

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183605634.png"></a>

客戶機能解析mail.qq.com的位址 ok

Outlook配置完成後就基本上是這樣的

好嘞,下面用user1給自己發一封郵件!!!!!!!!!

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183722761.png"></a>

點選“發送” 由日志可以看出已經成功發送

Sep 23 14:05:48 localhost sendmail[3007]: q8N65mPe003007: from=&lt;[email protected]&gt;, size=427, class=0, nrcpts=1, msgid=&lt;001301cdc0d1$0fffe9a0$0a02a8c0@wsmkiss&gt;, proto=SMTP, daemon=MTA, relay=[192.168.2.10]

Sep 23 14:05:48 localhost sendmail[3009]: q8N65mPe003007: to=&lt;[email protected]&gt;, ctladdr=&lt;[email protected]&gt; (501/501), delay=00:00:00, xdelay=00:00:00, mailer=local, pri=30594, dsn=2.0.0, stat=Sent

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183743363.png"></a>

在mail伺服器上User1接收到了

編輯vim /etc/mail/local-host-names  添加兩句話如下:(域名為qq.com的郵件伺服器)

qq.com

mail.qq.com

編輯vim /etc/mail/local-host-names  添加兩句話如下:(域名為wsm.com的郵件伺服器)

wsm.com

wsm.qq.com

在outlook上user1能不能接受呢,答案是肯定不能,因為mail伺服器才監聽了25端口即smtp協定,pop3和imap4相應的協定還沒安裝,這要靠dovecot來支援啦。。最好yum安裝,

yum -y install dovecot

service dovecot start  開啟dovecot服務

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183800202.png"></a>

2、 配置域名為wsm.com的mail伺服器,這與步驟1、基本相同,這裡我就不詳細說了

在底下我已經配置好了,并為域名為qq.com的mail伺服器再建一個user3使用者

3、 按照我們的要求,user1使用者給user3使用者發送一封郵件,user3使用者再給user1使用者發送一封郵件,使彼此都能夠發送郵件。

Sep 13 02:59:48 localhost sendmail[17190]: q8CIxlRW017190: ruleset=check_rcpt, arg1=&lt;[email protected]&gt;, relay=[192.168.2.20], reject=450 4.4.0 &lt;[email protected]&gt;... Relaying temporarily denied. Cannot resolve PTR record for 192.168.2.20

Sep 13 02:59:48 localhost sendmail[17190]: q8CIxlRW017190: from=&lt;[email protected]&gt;, size=0, class=0, nrcpts=0, proto=SMTP, daemon=MTA, relay=[192.168.2.20]

基本意思就是沒有中繼 這是因為預設不中繼

編輯域名為wsm.com的mail伺服器的/etc/mail/access 中繼檔案添加如下内容:

wsm.com                                 OK

qq.com                                 RELAY

編輯域名為qq.com的mail伺服器的/etc/mail/access 中繼檔案添加如下内容:

qq.com                                    OK

wsm.com                                 RELAY

分别重新開機兩台mail伺服器的sendmail服務

分别修改兩台主機的主句名如下:

vim /etc/sysconfig/network 修改為如下

HOSTNAME=mail.qq.com

hostname mail.qq.com

vim /etc/sysconfig/network

HOSTNAME=mail.wsm.com

hostname mail.wsm.com

Sep 13 03:08:35 localhost sendmail[17254]: q8CJ8YDa017254: from=&lt;[email protected]&gt;, size=1221, class=0, nrcpts=1, msgid=&lt;782BF4FBF3144C00AB87568CB8C82DDB@wsm5511ffd55a4&gt;, proto=SMTP, daemon=MTA, relay=[192.168.2.20]

Sep 13 03:08:35 localhost sendmail[17254]: q8CJ8YDa017254: to=&lt;[email protected]&gt;, delay=00:00:00, mailer=esmtp, pri=31221, dsn=4.4.3, stat=queued

這與上變的錯誤已經不一樣了,這可能是DNS轉發的問題:

編輯wsm.com的mail伺服器的/var/named/chroot/etc/named.conf  DNS的主配置檔案 在option中添加如下内容:

forwarders { 192.168.2.200; };

編輯qq.com的mail伺服器的/var/named/chroot/etc/named.conf  DNS的主配置檔案 在option中添加如下内容:

forwarders { 192.168.2.100; };

分别重新開機兩台mail伺服器的named服務

大約1-2分鐘後可以看到日志已經發送成功。

<a target="_blank" href="http://blog.51cto.com/attachment/201211/183819515.png"></a>

這樣速度很慢,我們要配合反向DNS解析動能 (mail伺服器需要配合DNS反向解析)

兩台mail伺服器的DNS反向解析的區域檔案分版本 添加一個PTR指針如下:

 域名為qq.com的mail伺服器           200          IN PTR  mail

 域名為wsm.com的mail伺服器          100          IN PTR  mail

重新開機DNS服務,,

 再次發送就沒問題了。

如有疑問,,歡迎回複。。。

本文轉自 abc16810 51CTO部落格,原文連結:http://blog.51cto.com/abc16810/1059234

繼續閱讀