时间: 2021-07-31 作者:daque
在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'}=~/(.*)@(.*)/){ 。。。。。 。。。。。 。。。。。 }