![[ 永远的UNIX::UNIX技术资料的宝库 ]](/images/title.gif)
|
| 首页 > 编程技术 > 其它 > 正文 |
 |
| 编写关于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)
|
===更多相关=== |
|
|
 |
★ 樊强制作 欢迎分享 ★ |