鳥哥的 Linux ADSL 私房菜


設定郵件伺服器(Mail Server
(本文已不再維護,請前往新文章)
最近更新日期:2001/08/21
注意:本文件僅適用於 Red Hat 6.2 以下版本
認識郵件運送的過程
簡易的設定 sendmail
Windows 設定
設定郵件別名轉寄
使用 Linux 系統寄信


認識郵件運送的過程
基本上,當你使用 E-Mail 訊息時,信件是如何運送的呢?通常是如下圖這樣運送的:
你的信件將經過 smtp 協定傳送至 郵件伺服器 ,然後郵件伺服器將視有無設定轉信主機(Mail eXchanger, MX),若有轉信主機,則信件先經過轉信主機後再傳到目的郵件伺服器,若無轉信主機,則信件將直接由你的郵件伺服器送至目的郵件伺服器,最後,由你的收件者以 pop-3 協定,將信件由對方的郵件伺服器中捉下來!舉個例子來說,如果你要從 kimo 寄信給鳥哥的話(tsai.adsldns.org),那信件是如何傳送的呢?
  1. 你在 Windows 系統中寫完了信,以 smtp 協定將你的信傳送至 kimo.com.tw 這個郵件伺服器;
  2. kimo.com.tw 這個郵件伺服器將你的信轉送至鳥哥的 tsai.adsldns.org 這個郵件伺服器;
  3. 鳥哥在 Windows 系統中,以 pop-3 協定將這封信由 tsai.adsldns.org 捉下來電腦中!
大致的流程就是這樣而已。底下來說說一些郵件的術語(以下的術語摘至 study-area ): Mail 與 DNS 的相關性
與 mail 最具相關的大概就是 DNS 的設定了,例如你要寄信給我的話,就要寄到 vbird@tsai.adsldns.org 這個信箱,因此,如果你要架設郵件伺服器的話,請務必將你的 DNS 設定正確!否則一定信件是寄不到你的信箱的喔!而由於我們是使用 ADSL撥接系統 來上網的,所以只好申請動態 IP 囉!


簡易的設定 sendmail
開始設定前的準備工作
在開始設定你的郵件伺服器之前,請先讓你的主機具有 DNS 可以追查到的功能囉!申請 DNS 主要有兩種方法: 請千萬注意,由於 DNS 設定錯誤將使你的信件無法收取(不過發信可能沒有問題!)因此這一部分請仔細的設定喔!


Windows 設定
好了,現在開始要來設定用戶的收信方法了,在此我仍然以 Outlook 來作介紹, Netscape 的方法是差不多的!你只要知道你的郵件伺服器的名稱就好了(這裡假設你的郵件名稱是 hostname.adsldns.org):
  1. 開啟 OutLook,點選『工具』裡面的『帳號』;
  2. 點選『新增』選擇『郵件』來設定;
  3. 輸入顯示名稱:這個名稱是別人在收信的時候,可以看到的寄件人稱謂;
  4. 接著下來比較重要了,請使用你的 ID@hostname.adsldns.org 登入你的郵件伺服器;
  5. 然後,當然郵件伺服器收發都是同一個,請使用你的 DNS 申請的名稱;
  6. 輸入帳號與密碼,也可以選擇『記憶密碼』,然後按下一步,就完成了。
基本上,Windows 這邊只要設定如此即可!然後你就可以用你的 Linux 來當郵件伺服器囉!!


設定郵件別名轉寄
你有沒有發現,通常一個人在一個機器上只有一個 ID ,但是,如果你想要讓你的很多別名都可以直接寄到你的帳號中的話,要如何是好?又,如果你想要讓你的小組成員都可以收到同一個帳號的信,要如何設定呢?
  1. 一個人擁有多個不同的虛擬信箱

  2. 假如你的 ID 喜歡以 nice name 來取,例如 pig ,不過,當你進入工作中,總不好意思還用這一個 ID 吧,假如你的姓名是 王小明 (全中華民國最倒楣的名字!?)那你應該會想要使用 smwang@hostname.adsldns.org 來當你的信箱,那要不要在開一個帳號給你呢?其實不需要的,只要設定一個別名給 pig 這個帳號就可以了!也就是說,當外面的信件收件人寫 smwang@hostname.adsldns.org 的時候, Linux 系統就會主動的將信傳到 pig@hostname.adsldns.org 這個信箱中,也就是說,根本沒有 smwang@hostname.adsldns.org 這個信箱,他只要用來將信件轉到你 pig 帳號中的一個手續而已!
    那要如何設定呢?很簡單,直接以 userconf 來解決就可以了! 好了!設定完成之後,只要選擇 Accept ,不用進行任何其他的步驟, smwang 這個虛擬的信箱就啟用了!方便吧!另外,你一個帳號可以多重設定很多的虛擬信箱喔!
     
  3. 多人共用一個帳號

  4. 相反的,假如你們一票同學都希望擁有同一個信箱,如此一來,當 Linux 系統收到一封信時,大家都可以收到了!這時,如果只有一個實體信箱的時候,因為信被 Outlook 收走時,伺服器信箱裡的信也就被刪掉了!後面的人不就收不到了?要如何作呢?其實也是很簡單,如果你有四個人 bird1, bird2, bird3, bird4 希望收到同一個信箱的信,例如 birdhome@hostname.adsldns.org ,那也很簡單,只要在四個人的 Email alias 都設定一個別名為 birdhome ,那四個人就都可以收到 birdhome 這個信箱的信了!
    Linux 的運作過程是這樣的,Linux 當收到 birdhome 這個信箱的信時,會去查每一個實體帳號的 email alias 設定,有設定這個 alias (別名)的人就寄一份資料給他,因此, Linux 總共會寄出四份資料,分別傳送到 bird1, bird2, bird3, bird4 這四個人的信箱中,所以這四個人只要開啟自己的信箱就可以收到同一封信了!
其實,上面兩個方法僅要改變一個檔案即可做到,就是修改 /etc/aliases 這個檔案,這個檔案有點像這樣:
 
#
#       @(#)aliases     8.2 (Berkeley) 3/5/94
#
#  Aliases in this file will NOT be expanded in the header from
#  Mail, but WILL be visible over networks or from /bin/mail.
#
#       >>>>>>>>>>      The program "newaliases" must be run after
#       >> NOTE >>      this file is updated for any changes to
#       >>>>>>>>>>      show through to sendmail.
#
# Basic system aliases -- these MUST be present.
MAILER-DAEMON:  postmaster
postmaster:  root
# General redirections for pseudo accounts.
bin:  root
daemon:  root
games:  root
ingres:  root
nobody:  root
system:  root
toor:  root
uucp:  root
# Well-known aliases.
manager:  root
dumper:  root
operator:  root
# trap decode to catch security attacks
decode:  root
# Person who should get root's mail
#root:          marc
smwang:  pig
birdhome:   bird1 ,bird2 ,bird3 ,bird4
有沒有看到最後一行,smwang:  pig ,在虛擬帳號後面接實體帳號,而每個帳號名稱中間以『,』符號分隔!因此,當你需要設定郵件別名的時候,除了 userconf 之外,也可以使用這個檔案來修改!
但是請注意,修改完成之後,還必須執行 newaliases 來載入這個檔案的設定進入 sendmail 中才行!也就是說你必須:


使用 Linux 系統寄信
用 Linux 來寄信,最常使用的就是 mail 這個指令了,基本的使用情況是這樣的: 當然還有很多的功能可以使用的,就要讓你自己來摸索囉!
2002/ 01/01以來統計人數