一、本程式採GPL版權。 二、本程式利用PHP與C語言來開發一多人共用之電子報程式。 提供使用者由網頁確認訂閱的功能。 三、原理: 1.本程式是利用IMAP來認證使用者,使用者必須在某台機器上有帳號, 並可透過IMAP來讀取信件才能通過系統認證(也可改用POP3認證, 請自行修改auth.php)。 2.為了減少對資料庫系統的依賴,本程式採用text file的方式來存放電 子報的訂戶Email,並於paperadd.php對輸入的Email做多方的檢查。 3.為減少瀏覽器使用者於發送大量電子報時的連線時間,程式會自動呼叫 一支sendpaper.c程式來做背景發送。當發送的信件量大時,則建議改用 send1paper.c 配合batch來送信。 4.管理與log之檢視盡量使用Web介面。 5.整個電子報系統存放於一個基礎目錄中,每一個電子報使用基礎目錄底 下的一個獨立目錄。 6.配合autogb程式,可以自動處理發送big5與gb碼兩種電子報。 7.系統會檢查歡迎信中有無「%key%」這個keyword,如果有的話就認為 這個系統希望使用者透過網頁確認自己的訂閱,會將確認的url替換掉 「%key%」這個keyword。否則則與1.2版以前一樣,直接加入資料庫中。 8.自從2.0版以後,改用batch指令來送信,會在系統負載輕的時候才送信。 batch指令內定系統負載小於0.8時才送信,如果需要修改這個數值,可於 atd啟動時(redhat linux在 /etc/init.d/atd)加上 -l 參數,例如: atd -l 3 就可以設定系統負載小於3 就送信。 四、安裝: 1.先安裝PHP4程式,需支援IMAP之功能。 2.將程式解開,修改config.php、send1paper.c與sendpaper.c,指向適當之目錄。 用到gb碼的話則還要修改 gconfig.php gbsend1paper.c 。 3.建立適當之基礎目錄與使用者目錄,讓httpd可以讀寫。 4.參考示範網頁建立每個使用者的電子報網頁,並試需要修改conf/ 底下的控制檔。 五、程式的功能與使用法 1.auth.php 認證用的程式 2.config.php 系統參數存放的程式 gbconfig.php GB碼相關系統參數存放的程式 3.editwel.php 編輯歡迎信的程式,接受一個USER參數,設定管理者的id 4.jacky.html 範例html 5.mailout.php 背景送信的程式,由send.php呼叫之 6.paperadd.php 訂閱或取消訂閱電子報的程式,接受USER參數設定管理者id RETURNADD參數,設定填完Email後回去的網頁 EMAIL參數,設定EMAIL AOD參數,值為add時就是訂閱,del時就是取消訂閱 paperadd_big5.php 等同於此程式 paperadd_gb2312.php則是 GB碼的訂閱程式。 7.send.php 準備送信用程式,接受USER參數設定管理者id RETURNID,設定回信電子郵件位址 8.sendpaper.c 背景送信用的C程式,用 gcc -O6 -o sendpaper sendpaper.c 編譯即可 8.send1paper.c 利用batch送信用的C程式,用 gbsend1paper.c gcc -O6 -o send1paper send1paper.c gcc -O6 -o gbsend1paper gbsend1paper.c 編譯即可 9.tool.html updatewel.php的範例html 10.updatewel.php 改歡迎信、檢視各樣log的程式,接受USER參數設定管理者id rlog參數不設定時就是修改歡迎信,值為「檢視」時就是檢視 送信記錄,值為「上次」時就是檢視上次的送信狀況記錄。 11.prove.php 用來讓使用者確認自己願意加入電子報。這個程式必須在 gbprove.php 歡迎信中有 %key% 關鍵字時才有作用。 六、HTML電子報的發送方法 1.在發送區域的第一行補上 Content-Type: text/html; charset=big5 2.利用「發送檔案」 只要先在自己的電腦上做好html,最後上面加一行 Content-Type: text/html; charset=big5 就可以利用「發送檔案」來上傳發送了 例如: Content-Type: text/html; charset=big5 Programming Course

程式設計網路教材

Java API說明書 Jer-Min Tsai tjm@fhl.net 2003.11.10