首 页 | 网页模板 | 教程 | 源码下载 | 书籍下载 | 图片素材 | 字体 | JAVA特效 | FLASH源码 | 软件 | 矢量 | 论坛 | 其它 |
设为主页
加入收藏
联系站长
平面设计 | 网页制作 | 程序编写 | 数 据 库 | 媒体动画 | 网络冲浪 | 服务器相关 |
当前在线
广告:P4服务器电信机房6999/年即送产权 | 疾风下载
编写关于SendMail的CGI
2004-7-11 8:26:00  作者:  来源:未知 网友评论 0 条 论坛
    在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'}=~/(.*)@(.*)/){
。。。。。
。。。。。
。。。。。
}

>> 相关文章

关于网站 | 客服中心 | 服务条款 | 友情链接 | 广告联系 | 本站历程 | 网站导航

吉ICP备05000107号