由於是技術鐵人,就不貼太多source code佔篇幅囉,以免被挑戰。
下面分享內容是當初(7~8年前囉)實作完的備忘稿。
為郵件簡訊設定步驟:
1 安裝RedHat7.1 以上版本。(或最新的Fedora,但不要安裝CLE版,選custom type, 安裝時於防火牆開啟smtpd sshd httpd) 。
2 安裝時選取WWW SERVER。
3 裝完後,Apache、mysql與php預設都可以使用,為保險起見,檢查相關是否安裝相關rpm:
rpm -q [rpm名稱 dash之前]
php-4.0.4pl1-9
mysql-3.23.36-1
mysqlclient9-3.23.22-4
php-4.0.4pl1-9
php-mysql-4.0.4pl1-9
4. 參考mysql設定密碼及起始database。
5. 將smrsh0424.tgz的檔案解壓縮至/etc/smrsh。
6. 編輯 database.c 改變巨集定義如下。
#define DB_NAME "sms"
#define DB_SERVER "localhost"
#define DB_LOGIN "root"
#define DB_PASSWORD "your-password"
執行make online 產生新的sms_gw
7. /etc/mail/local-host-name加入sms ipms ipms.chts.com.tw各一行
8. 在 /etc/mail/sourcefile 加入以下內容(注意順序與中間只要間格一個TAB)
sms@ipms.xxx.com.tw sms
root@ipms.xxx.com.tw root
@ipms.chts.com.tw nobody
@sms sms
9. makemap hash virtusertable.db < sourcefile
10. 修改 sendmail.cf (否則遠端無法使用SMTP)
#O DaemonPortOptions=Port=smtp,Addr=127.0.0.1, Name=MTA
O DaemonPortOptions=Name=MTA
#打開上面這行
11. 重啟sendmail daemon使步驟10的修改有作用:
/etc/rc.d/init.d/sendmail restart
12. 安裝index.php與db_query.php於/var/www/html/sms建立web查詢。
13. 於shell執行setup並起始 mysqld httpd 兩 service。
14. 執行 cd /etc/smrsh; cat test.hinet | ./smrsh 觀察是否執行正常。
15. 聯絡CHT行動通訊分公司(02-23445534)開放來源IP ,該IP須為實際上在Internet上Routing的IP。若主機在Intranet裡或與Internet介接有防火牆者,需聯絡公司網管人員放開防火牆。
16. 收件者填寫 tel#@sms (如 0912345678@sms) ,即會將主旨當成簡訊內容送出。
17. 若MTA所使用的SMTP主機不是設定在簡訊主機,則必須使用格式2,如:0912345678@ipms.xxx.com.tw,sms@ipms.xxx.com.tw。
18.觀察/var/log/maillog的內容,了解方送狀態。
wulinyuzan提到:
5. 將smrsh0424.tgz的檔案解壓縮至/etc/smrsh。
最關鍵的就是 smrsh 裡的程式或 script,
才是把怎麼把來信 被 smrsh 裡的程式來處理,
最多是看到您的第 14 點,
- 執行 cd /etc/smrsh; cat test.hinet | ./smrsh 觀察是否執行正常。
看起來裡面有個 test.hinet 的文字檔,
讓smrsh來 pipeline 的方式執行,
但一般的smrsh是在 /usr/sbin/smrsh
所以分享裡的最重點,
5,6,12,14點裡的 smrsh0424.tgz 的內容、
php的程式碼、mysql的schema,
期待在你的下篇中能分享出來這很實用的經驗。
還有第8點的 sourcefile 的檔案,
似乎不是sendmail內建會讀的檔案,
不曉得是給sendmail讀的?還是另外的程式要讀的?
而其語法又像是aliases似的。
期待您的分享及補充。
沒甚麼人推文
所以應該沒甚麼人有興趣
不佔篇幅了 要source code私底下來信吧