centos 6.6 系統中配置sendmail和dovecot

來源:互聯網
上載者:User

標籤:檔案中   dma   6.2   centos 6   efi   centos   dig   centos6   centos6.6   

網上介紹sendmail的文章千百種,很少有跟著做下來一次成功的。多少都有些說的不準確的地方。

我給大家共用一下我經過實驗環境測試,完全可行的方法。

1.軟體準備

作業系統:centos6.6
我選擇centos6.6,
以下軟體,centos6.6全部內建,無需另外下載。
郵件系統:

cyrus-sasl-gssapi-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-2.1.23-15.el6_6.2.x86_64
sendmail-cf-8.14.4-9.el6_8.1.noarch
cyrus-sasl-md5-2.1.23-15.el6_6.2.x86_64
m4-1.4.13-5.el6.x86_64
cyrus-sasl-lib-2.1.23-15.el6_6.2.x86_64
sendmail-8.14.4-9.el6_8.1.x86_64
cyrus-sasl-plain-2.1.23-15.el6_6.2.x86_64
cyrus-sasl-devel-2.1.23-15.el6_6.2.x86_64
dovecot-2.0.9-22.el6.x86_64

sasl這裡,我要說一句,網上有人說“sendmail-8.13已經包含cyrus-sasl的功能,所沒必要再安裝cyrus-sasl”
大哥大姐們,沒有cyrus-sasl用什麼做認證.....

sendmail官方只是說,sendmail的rpm包預設已經支援了cyrus-sasl認證方式,也就是說,sendmail會在cyrus-sasl的工作目錄下自動建立相關認證設定檔,並監聽25號連接埠,就不用你去手動自己建立設定檔和監聽連接埠了。

當有請求進入25號連接埠的時候,sendmail會自動找到/usr/lib/sasl2/Sendmail.conf讀取認證方法。下面我會詳細解釋。

2.安裝軟體

rpm -ivh把上面軟體全裝上,都在光碟片裡呢,好裝。

yum安裝更方便

3.認證配置

pop3:網上說修改/etc/dovecot.conf檔案,將第17行的:#protocols = imap imaps pop3 pop3s的#去掉。

其實不用,它預設已經啟用了這些服務,除非你只想用dovecot-auth的認證,你可以改成protocols = none,否則不用改。
smtp:
注意,smtp稍微麻煩一下。


我講下原理:
當使用者請求進入25號連接埠後,sendmail調用cyrus-sasl的saslauthd進程,saslauthd要求對方輸入本地系統使用者的使用者名稱和密碼,當使用者輸入好後,saslauthd會去尋找系統的/etc/shadow檔案,密碼確認無誤,允許存取,告訴sendmail,這個使用者合法,可以使用郵件服務來發郵件。
這時候你去/usr/lab/sasl2/下看看,sendmail已經做好了一個sendmail.conf檔案,裡面指明了:pwcheck_method=saslauthd,說明sendmail認證時就要調用saslauthd
所以要實現上述功能,就要設定cyrus-sasl的saslauthd,給它指定認證方式。
首先,進入/etc/sysconfig/,開啟saslauthd的指令碼,找到第7行的:
MECH=
等號後面不管寫什麼,我們都要改成:
MECH=shadow
儲存
這樣saslauthd才會去找shadow檔案給使用者做認證。
其實saslauthd還可以用自己的使用者名稱和密碼資料庫做驗證,但這樣不方便,還要另外建立使用者,不如直接用系統自身存在的使用者名稱和密碼。

 

4.Sendmail配置.

配置郵件伺服器名稱:
開啟/etc/mail/local-host-names
加入你 @後面的郵箱地址。比如我這裡是[email protected]
那麼,你要在local-host-names檔案裡的第二行添加:
linuxedentest.com
儲存
當然
local-host-names還可以設定郵箱別名,這個不多說,大家查文檔看看。
改好後還要去你的dns伺服器上,打上mx標誌,添加A標記,用來解析dns名和地址。具體方法就要查查bind的設定方法了,或者win2003的dns設定方法。
配置sendmail.mc:
開啟/etc/mail/sendmail.mc檔案,
找到:
dnl TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
dnl define(`confAUTH_MECHANISMS‘, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
把前面的dnl注釋去掉,變成:
TRUST_AUTH_MECH(`EXTERNAL DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
define(`confAUTH_MECHANISMS‘, `EXTERNAL GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN‘)dnl
上面兩句的意思是:
允許存取那些通過EXTERNAL, LOGIN, PLAIN, CRAM-MD5或DIGEST-MD5等方式驗證的郵件使用者,無視access檔案中的設定。
confAUTH_MECHANISMS,確定系統支援的認證方式。LOGIN PLAIN 方式下,outlook用的多。
還不算完,找到:
dnl DAEMON_OPTIONS(`Port=smtp,Addr=127.0.0.1, )dnl
改成:
DAEMON_OPTIONS(`Port=smtp,Addr=0.0.0.0, )dnl
這樣所有ip地址都可以通過smtp連接埠使用我們的郵件伺服器了。
-----------------------------------------------------------
這裡要說一句,不要改
dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea‘)dnl
這句話!保持注釋狀態。
上面那句話,網上好多文章都說把Port=submission,改成Port=25,說是強制所有使用者在25連接埠上做認證。
我不知道sendmail以前的版本是怎麼樣設定smtp認證的。sendmail8.13不用這麼設定,這句話人家sendmail的意思是:取消注釋後,一旦當25號連接埠被重新導向或者被屏蔽,或者在25號連接埠打不開的情況下,馬上使用587備用連接埠給使用者做認證。
本來人家sendmail就已經開啟了25連接埠(Port=smtp了已經),你卻在這裡還Port=25,把備用連接埠也改成25,這不是讓sendmail的sm-client認
證進程和sendmail的主進程搶連接埠麼....
-----------------------------------------------------------
到此為止,儲存sendmail.mc
  
用m4重建sendmail.cf檔案 
  
# m4 /etc/mail/sendmail.mc > /etc/sendmail.cf 
啟動dovecot進程:
/etc/init.d/dovecot start
啟動saslauthd進程:
/etc/init.d/saslauthd start
啟動sendmail進程:
/etc/init.d/sendmail start
把這些進程加入到啟動指令碼中去:
chkconfig dovecot on
chkconfig saslauthd on
chkconfig sendmail on
ok,所有設定全部完成,可以正常認證和收發郵件了。
本文如有不準確的地方,請各位海批~~~

centos 6.6 系統中配置sendmail和dovecot

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.