星期四, 9月 30, 2004

安裝郵件主機(3)收外部信箱

2005.1.28 update
因為在Centos Linux 上的掃毒與 Spam 設定一直沒有好好研究,
所以決定將 收取外部(主要是 Hinet 郵件)的功能取消掉,
直接由工作站上的 Outlook 去收信。

1.首先,進入 usermin(webmin) 中取消該信箱的外部收信設定。
2.在 root 下的 fetchmailrc 刪除,這是用來設定外部信箱帳號的執行檔,內容為:
poll xxx.hinet.net
user "xxx.xxx"
pass "xxx"
is username ( 在Linux 主機上的收信用戶)
該檔案的權限為 700
3. 進入 /etc/crontab 將收信的該行註解掉



設置自己的郵件主機,有個重要的功能,就是希望能將外部的一些電子郵件都彙整收進來,這樣便能在單一的介面(webmail或是單一工作站),一次動作就 能閱讀到所有的信箱(當然,少部分不支援POP服務的免費郵件-像是Yahoo目前不行),所以就需要Fetchmail這個套件。

用rpm -qa grep fetchmail 查看看是否已安裝,
或是直接用 yum -y install fetchmail 來安裝。

一時找不到好的設定fetchmail的網路學習文件,目前我只能藉助webmin和usermin來管理:(

→進入要收取外部郵件的usermin帳戶,很直觀的就可以設定好。

→設定之後,會發現在個人家目錄下多了一個 .fetchmailrc 的隱藏檔,內容如下:
poll pop3.abc.net user "name" pass "password" is localname
很容易就能知道是如何設定的。

→當然,要讓fetchmail自動、定時去收外部的信件,有兩種方法:
  1. 使用Cron job排程,定時去下載外部郵件
    不過我對cron還沒好好研究,使用usermin設定又不成功,所以暫時擱置。
  2. 第二種方法是直接使用 fetchmail daemon ,usermin中只要輸入一個時間1200(=秒=20分鐘),按個鍵就可以了,檢查一下程式資訊,發現就是這樣的指令:
    fetchmail -d 1200
    (將fetchmail 以 daemon方式啟動,每1200秒檢查一次新郵件)

基本上是OK,不過猜想讓fetchmail用daemon方式常駐,應該是會比用cron去定時執行一下更耗費資源才是。

2004.10.03 補充:已經將fetchmail取消daemon的方式了,改採cron排程。
==>在/etc/crontab中增加如下一行:
03,13,23,33,43,53 * * * * user fetchmail -v -f '/home/user/.fetchmailrc'
(也就是每隔10分鐘fetch一次外部郵件,執行的層級為 user 身分,指令是fetchmail,並使用 -f 參數來指定外部郵件設定檔)

2004.10.03 補充2: 上面的作法執行時有問題,現在將.fetchmailrc 複製到 /root/fetchmail,並將 /etc/crontab 改成 13,33,53 * * * * root /usr/bin/fetchmail -v -f '/root/fetchmailrc'
這樣執行時就沒有問題了

※遇到的問題,陸續會找出方法或解答來學習。

《補充記事》
在 測試郵件主機的過程中,有一件小事:因為還沒有安裝好Webmail,所以就偷懶使用Webmin中的"讀取使用者郵件",或是進入Postfix組態下 的"使用者信箱",發現測試的郵件收不到,看syslog也找不出問題,讓我反反覆覆測試、重新啟動、反安裝...搞了半天,結果才發現→用工作站上的 Outlook明明就有信件啊?改用Usermin進入也沒問題;結果發現根本就是webmin的這兩個讀信件的地方自己有問題!!並不是安裝的郵件伺服 器的問題...(有時間再研究一下webmin這兩個地方到底哪裡設定有誤)


沒有留言: