include ("../head.php");
?>
簡易設定 POP Before SMTP 郵件主機系統
wang
<wang1126@mail.gpp.ks.edu.tw>
簡介:
底下的簡易流程為設定 POP before SMTP 的郵件主機,使用的郵件伺服器為
Postfix 。什麼是 POP before SMTP 呢?由於目前的郵件主機很容易被當成垃圾信的轉信站,所以目前的郵件主機已經不再開放
Open Relay 了,但是由於我們總是需要將郵件主機開放給主機的使用者( 用戶 )來寄信吧!所以呢,就有所謂的
SMTP 認證以及這個 POP before SMTP 的機制出現了!
在 SMTP 認證機制裡面,我們必須要輸入帳號與密碼才能開始傳送信件,那麼換個角度來想,其實
POP (收信) 的過程裡面,不是也會輸入帳號與密碼嗎?所以我們就利用『在寄信之前先以
POP3 收信,由於收信的認證資料會有短時間存在主機裡面,因此在 POP 收信完成後,就可以寄信,這個時候的寄信認證的機制就是使用前一時間的
POP 的認證』。這樣說應該就可以瞭解,使用底下的流程之後,您不需要勾選任何認證的選項,只要在發信之前先收個信,呵呵!就可以寄信囉!
架設流程:
-
需要先安裝 perl 的一些檔案,請至 http://www.cpan.org/modules/01modules.index.html
下載下列兩個模組,
File::Tail及Net::Netmask。
( 在redhat8.0以上,另兩個模組;Time::HiRes及Date::Parse,已經安裝了。)
-
到 https://sourceforge.net/project/showfiles.php?group_id=5017
下載檔案,目前為1.33版。
解壓縮:
tar zxvf pop-before-smtp-1.33.tar.gz
進入該目錄:
cd pop-before-smtp-1.33
修改檔案:
vi pop-before-smtp-conf.pl
設定三個變數:
$file_tail{'name'} = '/var/log/maillog';#設定mail的log檔
$grace = 30*60; #這項功能是有效時間,單位是秒
$dbfile = '/etc/postfix/pop-before-smtp';
-
測試是否可以使用:
./pop-before-smtp --config=./pop-before-smtp-conf.pl
--debug --nowrite –reprocess
如果正確,會列出日期及ip等資料
-
安裝:
cp pop-before-smtp.init /etc/rc.d/init.d/pop-before-smtp
cp pop-before-smtp /usr/sbin/
cp pop-before-smtp-conf.pl /etc
-
背景執行:
/etc/rc.d/init.d/pop-before-smtp start
-
接著設定postfix的參數:
smtpd_recipient_restrictions = permit_mynetworks,reject_non_fqdn_recipient,
check_client_access hash:/etc/postfix/pop-before-smtp,#加入這行
check_relay_domains
-
測試:
請從遠端登入,請勿從同一網域登入(因為permit_mynetworks在最前面,會先檢查到此一條件而無法測試),再看看
/etc/postfix/pop-before-smtp.db的更新時間,是否是你剛從遠端入的時間,如果是,那就對了。
include("../tail.php")
?>