GB | BIG5
|
| 首頁 > 編程技術 > 其它 > 正文 |
 |
| 編寫關SendMaild的CGI |
| 本文出自:bigluo.cn.hongnet.com 作者:Bigluo (2001-08-21 08:00:00) |
在UNIX主機上我門可以很輕易地通過編程來發送EMAIL,有時我們需要把從表單上得來數據整理發送到
一個信箱裡,例如來訪者的留言,在線申請。
在UNIX系統中通常會有一個 sendmail 程序用來發送EMAIL的,這是一個十分復雜的電子郵件系統,但我們
在CGI編程中用它來發送EMAIL是十分簡單的事,具體的操作是打開一個通道,把輸出的信息作為sendmail
這個程序輸入
代碼如下:
open (MAIL,"|/usr/sbin/sendsendmail zjxyz@XXXX.XXX"); #注意其間的空格
print MAIL $msg
close MAIL;
這樣我們就可以把變量$msg中的內容通過服務器上的 sendmail 程序發送到地址為zjxyz@XXXX.XXX 的信箱
中,要注意的是這只是一個簡單的例子,還有一些細節的地方是需要討論的。在上述的程序中,郵件的接受
者將會收到一封沒有標題、沒有回信地址的信件,要想發出去的信件像樣一點,就必須在發送內容之前送出
信頭:請看以下例子:
open (MAIL,"|/usr/sbin/sendsendmail zjxyz@XXXX.XXX");
print MAIL "To: $toemailn";
print MAIL "From: $fromemailn";
print MAIL "Reply-to: $fromemailn";
print MAIL "Subject: $subjectn";
printMAIL $msg;
print MAIL "nn";
close MAIL;
我們看到的"To:"、"From:"、"Reply-to:"、"Subject:" 就是用來標識信頭的,它們郵件程序中不會被當作
是信件的正文在處理,程序中的換行符號是必需的的。
在這裡不得不提一下安全問題,有時我們發信的的地址是從表單上獲得的,如果不嚴格檢查從表單上獲得的
EMAIL地址的合法性,將會給惡意的攻擊者帶來攻擊的機會,讓你的CGI程序執行一些破壞系統的操作,果
是非常嚴重的。簡單舉個例子說明:
if ($FORM{'mailto'}=~/(.*)@(.*)/){
。。。。。
。。。。。
。。。。。
}
(http://www.fanqiang.com)
進入【UNIX論壇】
|
|
| 相關文章 |
如何撰寫安全的CGI程式 (2001-11-02 08:00:01) CGI編程的COOKIE技術應用 (2001-08-24 07:00:00) Perl源碼:一種圖形顯示式計數器CGI程序范例 (2001-08-23 15:00:00) Perl源碼:分頁顯示CGI程序范例 (2001-08-23 12:00:01) Perl源碼:在線人數統計CGI程序剖釋 (2001-08-23 10:00:01) Perl源碼:日歷CGI程序淺解 (2001-08-23 09:00:01) PERL CGI簡介及指令示范 (2001-08-22 12:00:00) CGI與WEB服務器的響應頭 (2001-08-22 10:00:00) 編寫關SendMaild的CGI (2001-08-21 08:00:00) 實戰FastCGI (2001-08-21 07:00:00)
|
===更多相關=== |
|
|
 |
★ 樊強制作 歡迎分享 ★ |