苗栗縣大湖鄉大南國民小學全球資訊網路 (FreeBSD) 架站日誌
本文件僅供本站自主維修之用,若您操作時出了問題,請恕本站無法提供任何協助,因為這只是一篇私人的筆記而以。
SendMail-8.11.6
19365
本文件最後的修改日期:Thursday April 04, 2002
  1. 以下是在 FreeBSD 4.2-RELEASE 中操作的。
  2. 變換成 root 身份操作:
    su - root
  3. 取得新版的sendmail.8.11.6.tar.gz
  4. SendMail 原始站臺在這裡下載, 目前本校安裝的這個版本
    下載後放在 /usr/local/src 資料夾中。
    cd  /usr/local/src
    ftp  ftp://ftp.sendmail.org/pub/sendmail/sendmail.8.11.6.tar.gz
  5. 先備份系統目前所使用的各個設定檔與執行檔,以防萬一:
    Back up your current /etc/mail/sendmail.cf and the sendmail binary (whose location varies from operating system to operating system, but is usually in /usr/sbin or /usr/lib).
    mv  /etc/mail  /etc/mail.orig
    mv  /usr/sbin/sendmail  /usr/sbin/sendmail.orig
    mv  /usr/sbin/makemap  /usr/sbin/makemap.orig
  6. 停止 SendMail Daemon 的運作:
    kill  -KILL  `cat  /var/run/sendmail.pid`
  7. 解壓縮:
    tar   zxvf   sendmail.8.11.6.tar.gz
  8. 開始編譯:
  9. In the sendmail-8.11.6/ directory, run "sh Build" (see sendmail/README for details).
    在 sendmail-8.11.6/ 資料夾中,執行 Build 開始編譯 Sendmail 的原始碼:
    cd  sendmail-8.11.6/
    sh  Build
  10. 建立設定檔 config.cf :
    Change to the cf/cf/ directory (that's not a typo): Copy whichever .mc file best matches your environment to config.mc, where config can be any name. Next, tailor it as explained in cf/README. Then run "sh Build config.cf".
    cd  cf/cf/
    Copy whichever .mc file best matches your environment to config.mc
    (別忽略了這個拷貝的動作,很多網友參考這份文件操作時,掛在這裡。底下以在FreeBSD中編譯為例。)

    cp  generic-bsd4.4.mc  config.mc
    sh Build config.cf
  11. 安裝 Sendmail
    在 sendmail-8.11.6/ 資料夾中安裝:
    cd  ../../
    sh  Build  install
    爾後,如果sendmail系統有問題,只要再執行這個指令就能再安裝了。
  12. 編譯與建立 sendmail.cf 檔

  13. 使用m4工具程式來建立sendmail.cf設定檔。
    cd  cf/m4
    m4  cf.m4  ../cf/config.mc  >  /etc/mail/sendmail.cf
  14. 以上的步驟整理如下:
    #!/bin/sh
    kill -KILL `cat /var/run/sendmail.pid`
    sh  Build
    cd  cf/cf/
    cp  generic-bsd4.4.mc  config.mc
    sh  Build config.cf 
    cd  ../../
    sh  Build  install
    targetdir='obj.'`uname -s`'.'`uname -r`'.'`uname -p`'/mail.local'
    cd  $targetdir
    make  force-install
    chown  root /usr/libexec/mail.local
    chmod  u+s /usr/libexec/mail.local
    cd  ../../cf/m4
    m4  cf.m4  ../cf/config.mc  >  /etc/mail/sendmail.cf
    
  15. 將原來系統所使用的設定檔拷貝到sendmail系統資料夾(這些設定檔也可以在此時新建)。

  16. cd  /etc/mail
    cp  /etc/aliases  ./aliases
    newaliases
    cp  /etc/mail.orig/access  ./
    cp  /etc/mail.orig/relay-domains  ./
    cp  /etc/mail.orig/sendmail.cw  local-host-names
    local-host-namessendmail Mail Server 別名的設定檔。例如:admin@mail.dnes.mlc.edu.tw的信箱欲簡寫成admin@dnes.mlc.edu.tw時,只要在該檔案中寫入一行:dnes.mlc.edu.tw即可。
    另外,很多人在原本的系統中就設有sendmail.cw檔,其作用是相同的。請參考sendmail.cf檔中的原始設定內容:
    Cwlocalhost
    # file containing names of hosts for which we receive email
    Fw/etc/mail/local-host-names

    可以將上述第三行改成:
    Fw/etc/mail/sendmail.cw
    如果DNS系統中設有MX,這時sendmail.cw檔要配合MX值來設定,否則收不到信。
    POP3/SMTP伺服器的設定上不可以使用簡寫,這個功用只能使用在發送電子郵件時應用在收件人的郵件地址上。
    makemap  hash  mailertable  <  /dev/null
    makemap  hash  access  <  access
  17. 確認資料夾的權限:

  18. 這些資料夾應該只有root擁有寫入的權限。
    chmod go-w / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
    chown root / /etc /etc/mail /usr /var /var/spool /var/spool/mqueue
  19. 重新啟動sendmail

  20. sendmail -bd -q30m
    啟動參數說明:
    1. -b
      指定sendmaildaemon形式啟動。
    2. -d
      指定sendmail在背景執行,LISTEN port 25,等待信件。
    3. -q
      指定sendmail等待多久之後將mail queue的信件送出,上述的範例為30分鐘(30m)。

    還可以有其他的參數指定方式:
  21. 讓含大寫字母的UserID也能正常收信:
  22. 修改sendmail.cf檔:
    Mlocal,      F=lsDF....@....n9,  這串字有無h及u兩字母,如果沒有則加上去。
    Admin@dnes.mlc.edu.tw含大寫字母的郵件地址也能收到信了。
  23. Mail alias與轉寄功能:
    1. Mail alias系統轉寄功能與簡易MailList的設定

    2. sendmail.cf 設定檔中有一行:
      O  AliasFile=/etc/mail/aliases
      所以,/etc/mail/aliases 檔就是轉寄功能的設定檔。
      • /etc/mail/aliases檔案中直接指定別名或轉寄設定:

      • 921:tim,hwnbj    說明:寄給921的信轉寄給tim,hwnbj,實際上沒有921帳號。
        root:admin    說明:root的信轉寄給admin
        admin:tim     說明:admin的信轉寄給tim
        root的信無法從Client端(Win98)收信,所以先將信件轉寄給admin(admin是網管帳號),再將admin的信轉寄給實際負責網管業務的老師。
      • 從帳號表列檔案中載入別名:

      • 帳號表列檔案範例,name.listname.list2,這二種格式都可以,而以第二種較為明確。
        帳號別名假定為teacher,
        則aliases中的設定方式:
        teacher:":include:/etc/mail/name.list2"
      • 替離職的員工轉寄信件

      • sspring:spring@mail.fushsinges.mlc.edu.tw.REDIRECT
        在aliases檔案中設定上述這一行後,凡寄給sspring之信件都會被主機退回,而原寄信者將收到下列訊息:
           ----- The following addresses had permanent fatal errors -----
        spring@mail.fushsinges.mlc.edu.tw.REDIRECT
            (expanded from: <sspring@dnes.mlc.edu.tw>)
        
           ----- Transcript of session follows -----
        551 5.1.1 User has moved; please try <spring@mail.fushsinges.mlc.edu.tw>
        

        此訊息除了告知退信之外,還告訴寄信者請嘗試寄至另一個郵件地址。
      • 讓別名及轉寄設定生效,一定要執行下列指令:

      • newaliases
    3. 一般User的轉寄設定:

    4. 建立$HOME/.forward檔
      假設帳號admin在家目錄中建立.forward檔案如下:
      tim
      peter@ms24.hinet.net
      \admin
      前二行的帳號都會收到轉寄的信件,
      第三行,會留下同一封信給admin自己。

  24. 自動回信設定
  25. procmail
  26. 用/usr/ports/mail/procmail安裝procmail,建立/usr/local/etc/procmailrc設定檔,如:
    MAILDIR=/var/mail
    VERBOSE=off
    PATH=/bin:/sbin:/usr/bin:/usr/sbin/:/usr/local/bin:/usr/local/sbin
    LOGFILE=/var/log/procmail.log
    
    :0 B 
    * ^Hi\! How are you(\.|=3F) 
    * ^I send you this file in order to have your advice 
    * ^See you later(\.|=2E) Thanks 
    /dev/null
    
    
    :0 B 
    * ^Hi\! How are you\? 
    * ^=20
    * ^I send you this file in order to have your advice 
    * ^=20
    * ^See you later\. Thanks 
    /dev/null
    
    :0 B
    * ^Content-Type:.*application.*
    * name="readme.exe"
    /dev/null
    
    :0 B
    * ^Content-Type:.*audio/x-wav.*
    * name="readme.exe"
    /dev/null
    
    在/etc/mail/sendmail.cf最底下加入下列這一行:
    Mprocmail, P=/usr/local/bin/procmail, F=DFMSPhnu9, S=EnvFromSMTP/HdrFromSMTP, R=EnvToSMTP/HdrFromSMTP, T=DNS/RFC822/X-Unix, A=procmail -Y -m $h $f $u
    procmail還屬於實驗操作階段,沒有完全試驗成功。

  27. POP3/IMAP4郵件伺服器
  28. Sendmail的簡易調校
  29. Outlook Express
    • POP3 Server
      就是你要取信的郵件主機。收取信件時,必須通過帳號及密碼的查核才能順利地收取信件。
      • 你有HiNet的帳號,要收信,這裡就要設成HiNet郵件主機的名稱。
      • 當然,如果要收學校的信,這兒就得設成學校的郵件主機的名稱了。
    • SMTP Server
      就是Outlook Express寫好信之後要幫你把信送出去的機器。送信時,不需要帳號及密碼,只要該主機有另外設定允許幫您轉信即可。
      • 你使用HiNet撥接上網時,這裡就須設定為HiNet的郵件主機名稱。
      • 在學校時怎麼辦,當然設學校的郵件主機名稱呀!
      • 也就是說,你透過哪一個ISP的網路上網,SMTP Server的名稱就設那個ISP的郵件主機啦。
  30. 查看信件佇列(因為某些原因而無法寄出的信):
    mailq
  31. 強迫將 /var/spool/mqueue 中的信件寄出:
    sendmail -q
  32. 參考資料來源:
    1. 88學年度清華大學網路管理班授課講義:陳世明老師講授。
    2. 旗標出版社:深入LINUX建構與管理,第11章-網路管理。楊文誌 著。
    3. 旗標出版社:RED HAT Linux 6.0 實務應用:施威銘研究室 著,頁21-9∼21-12。
    4. sendmail.cf
    5. OpendFind上的文章:
    6. sendmail-8.12.x
頁註腳
[ DNS | NAT & FireWall | DHCP | TCP_WRAPPER | SendMail | Quota | Samba | MySql | Apache+PHP | Proxy | FAQ ]
TWCERT 安全通報    
響應網路環保,減少使用圖片。
Miaoli Da-Nan Elementary School.
No. 15 Da-Nan Village, Da-Hwu County, Miaoli, Taiwan, R.O.C.
本文件僅供本站自主維護之用,並同意在不變更文件內容的前提下刊登或連結在任何型態的媒體中。