<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks
    網(wǎng)上介紹sendmail的文章千百種,很少有跟著做下來一次成功的。多少都有些說的不準確的地方。我給大家共享一下我經(jīng)過實驗環(huán)境測試,完全可行的方法。

    1.軟件準備

    操作系統(tǒng):centos5.0

    我選擇centos5,最新的操作系統(tǒng),不要再用redhat9了,很久沒有更新了,企業(yè)里用有風險的。更新?lián)Q代吧。

    以下軟件,centos5全部自帶,無需另外下載。

    郵件系統(tǒng):
                   sendmail8.13
                   sendmail-cf-8.13
                   m4-1.4

    pop3認證:dovecot-1.0

    smtp認證:
            cyrus-sasl-2.1
            cyrus-sasl-md5-2.1
            cyrus-sasl-plain-2.1
              cyrus-sasl-lib-2.1

    sasl這里,我要說一句,網(wǎng)上有人說“sendmail-8.13已經(jīng)包含cyrus-sasl的功能,所沒必要再安裝cyrus-sasl”
    大 哥大姐們,沒有cyrus-sasl用什么做認證.....sendmail官方只是說,sendmail的rpm包默認已經(jīng)支持了cyrus-sasl 認證方式,也就是說,sendmail會在cyrus-sasl的工作目錄下自動創(chuàng)建相關(guān)認證配置文件,并監(jiān)聽25號端口,就不用你去手動自己建立配置文 件和監(jiān)聽端口了。當有請求進入25號端口的時候,sendmail會自動找到/usr/lib/sasl2/Sendmail.conf讀取認證方法。下 面我會詳細解釋。

    2.安裝軟件

    rpm -ivh把上面軟件全裝上,都在光盤里呢,好裝。

    3.認證配置

    pop3:

    網(wǎng) 上說修改/etc/dovecot.conf文件,將第17行的:#protocols = imap imaps pop3 pop3s的#去掉。其實不用,它默認已經(jīng)啟用了這些服務(wù),除非你只想用dovecot-auth的認證,你可以改成protocols = none,否則不用改。

    smtp:
    注意,smtp稍微麻煩一下。

    我講下原理:

    當用戶請求進入 25號端口后,sendmail調(diào)用cyrus-sasl的saslauthd進程,saslauthd要求對方輸入本地系統(tǒng)用戶的用戶名和密碼,當用戶 輸入好后,saslauthd會去查找系統(tǒng)的/etc/shadow文件,密碼確認無誤,放行,告訴sendmail,這個用戶合法,可以使用郵件服務(wù)來 發(fā)郵件。

    這時候你去/usr/lib/sasl2/下看看,sendmail已經(jīng)做好了一個sendmail.conf文件,里面指明了:pwcheck_method=saslauthd,說明sendmail認證時就要調(diào)用saslauthd
    所以要實現(xiàn)上述功能,就要設(shè)置cyrus-sasl的saslauthd,給它指定認證方式。
    首先,進入/etc/sysconfig/,打開saslauthd的腳本,找到第7行的:

    MECH=

    等號后面不管寫什么,我們都要改成:

    MECH=shadow

    保存

    這樣saslauthd才會去找shadow文件給用戶做認證。


    其實saslauthd還可以用自己的用戶名和密碼數(shù)據(jù)庫做驗證,但這樣不方便,還要另外創(chuàng)建用戶,不如直接用系統(tǒng)自身存在的用戶名和密碼。




    4.Sendmail配置.

    配置郵件服務(wù)器名稱:

    打開/etc/mail/local-host-names
    加入你 @后面的郵箱地址。比如我這里是otto@linuxedentest.com
    那么,你要在local-host-names文件里的第二行添加:
    linuxedentest.com
    保存

    當然
    local-host-names還可以設(shè)置郵箱別名,這個不多說,大家查文檔看看。

    改好后還要去你的dns服務(wù)器上,打上mx標志,添加A標記,用來解析dns名和地址。具體方法就要查查bind的設(shè)置方法了,或者win2003的dns設(shè)置方法。


    配置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文件中的設(shè)置。

    confAUTH_MECHANISMS,確定系統(tǒng)支持的認證方式。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端口使用我們的郵件服務(wù)器了。


    -----------------------------------------------------------
    這里要說一句,不要改

    dnl DAEMON_OPTIONS(`Port=submission, Name=MSA, M=Ea')dnl

    這句話!保持注釋狀態(tài)。

    上面那句話,網(wǎng)上好多文章都說把Port=submission,改成Port=25,說是強制所有用戶在25端口上做認證。

    我不知道sendmail以前的版本是怎么樣設(shè)置smtp認證的。sendmail8.13不用這么設(shè)置,這句話人家sendmail的意思是:取消注釋后,一旦當25號端口被重定向或者被屏蔽,或者在25號端口打不開的情況下,馬上使用587備用端口給用戶做認證。

    本來人家sendmail就已經(jīng)打開了25端口(Port=smtp了已經(jīng)),你卻在這里還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,所有設(shè)置全部完成,可以正常認證和收發(fā)郵件了。

    本文如有不準確的地方,請各位海批~~~


    =============================分割線==============================================


                                smtp測試方法:

    以下sh#表示在shell上輸入;C 為客戶端輸入, S為服務(wù)器端返回信息 。


    sh# telnet <郵件服務(wù)器地址/IP>  <port(一般是25)>

    S : 220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Sun, 18 May 2008 01:55:03 +0800

    C : ehlo <名字> (不帶認證功能的是helo +名字)

    S : 250-localhost.localdomain Hello zhangzb.nec-as.nec.com.cn [172.28.90.9], pleased to meet you
    S : 250-ENHANCEDSTATUSCODES
    S : 250-PIPELINING
    S : 250-8BITMIME
    S : 250-SIZE
    S : 250-DSN
    S : 250-ETRN
    S : 250-AUTH GSSAPI DIGEST-MD5 CRAM-MD5 LOGIN PLAIN
    S : 250-DELIVERBY
    S : 250 HELP

    C : auth login

    S : 334 VXNlcm5hbWU6

    注:{  下面先輸入username后passwd,兩者需要輸入encode base64碼,轉(zhuǎn)換方法:
    sh# perl -MMIME::Base64 -e 'print encode_base64("username")'
    (注意print前后 是單引號,username 處替換成你需要的單詞)
    }

    C : MQ==  (這是我的用戶名:1)

    S : 334 UGFzc3dvcmQ6

    C : MQ==   (密碼,也是1)

    S : 235 2.0.0 OK Authenticated

    C : MAIL FROM:<XXXX@XXXX> (部分服務(wù)器設(shè)置后,需要真實的郵箱后綴名,具體方法不詳)

     
    S : 250 2.1.0 <XXXX@XXXX>... Sender ok

     
    C : RCPT TO:<XXXX@XXXX>   (目標郵箱)

     
    S : 250 2.1.5 <XXXX@XXXX>... Recipient ok

     
    C : DATA

     
    S : 354 Enter mail, end with "." on a line by itself

    C : 〈這里添郵件內(nèi)容〉
    C :.  (點)
     
    S : 250 2.0.0 m4HHt3Sj005640 Message accepted for delivery
     
    C: quit 
    〈mail send successful〉
    posted on 2008-07-24 00:24 seal 閱讀(336) 評論(0)  編輯  收藏 所屬分類: Linux
    主站蜘蛛池模板: 57pao一国产成永久免费| 免费一级毛片无毒不卡| 青青青免费国产在线视频小草| 亚洲成A人片777777| a成人毛片免费观看| 国产亚洲精久久久久久无码| 国产精品免费视频观看拍拍| 亚洲国产精品一区二区第一页免| 精品久久久久久亚洲中文字幕| 国产精品酒店视频免费看| 久久久亚洲精华液精华液精华液| 免费一级毛片女人图片| 亚欧洲精品在线视频免费观看 | 亚洲欧美自偷自拍另类视| 午夜一级免费视频| 免费无码专区毛片高潮喷水| 亚洲人午夜射精精品日韩| 久久久精品视频免费观看 | 亚洲色图黄色小说| 国拍在线精品视频免费观看| 美女视频黄免费亚洲| 亚洲av无码天堂一区二区三区| 国产va免费观看| 亚洲一区二区影院| 成人黄软件网18免费下载成人黄18免费视频| 亚洲永久网址在线观看| 亚洲精品视频在线看| 亚欧免费一级毛片| 亚洲中文字幕久久无码| 国产亚洲?V无码?V男人的天堂| 99国产精品视频免费观看| 亚洲精品乱码久久久久久V| 精品亚洲成α人无码成α在线观看 | 亚洲网站在线免费观看| 拍拍拍又黄又爽无挡视频免费| 免费观看又污又黄在线观看| 久久久久亚洲AV成人无码网站| 成年女人男人免费视频播放| 波霸在线精品视频免费观看| 亚洲国产成人在线视频| 亚洲午夜激情视频|