加入收藏 | 设为首页 | 会员中心 | 我要投稿 晋中站长网 (https://www.0354zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

实例学习PHP怎样实现在线发邮件

发布时间:2022-03-08 10:21:23 所属栏目:PHP教程 来源:互联网
导读:当使用者在参观网页时,有时想 Email 给 Webmaster 但是再执行 Email 程式总是不方使,使用者在按下 mailto:abc@CuoXIn.com 还要花段时间打开自己这儿的 Outlook 岂不麻烦。这时,若是 Homepage 能提供写信的功能就太酷了。同时意见信箱还是以提醒或者要求使
  当使用者在参观网页时,有时想 Email 给 Webmaster 但是再执行 Email 程式总是不方使,使用者在按下 mailto:abc@CuoXIn.com 还要花段时间打开自己这儿的 Outlook 岂不麻烦。这时,若是 Homepage 能提供写信的功能就太酷了。同时意见信箱还是以提醒或者要求使用者一定要填入哪些资料,这对资料仓储而言,也是了解客户的最好方法。
 
  整个意见信箱其实就像 Outlook 或者其它电子邮件软体,开启寄发新邮件的功能,不同的地方在于使用 Outlook 时,寄件人是固定的,而要填上收件人的地址;而网站上的意见信箱,收件人几乎都是 Webmaster,反而是要填上寄件人的电子邮件地址。当然另一个不同之处是Outlook 处理寄信的动作;而意见信箱是由 Web 伺服器处理使用者发送的信件。
  
  在 UNIX 的系统中,大部份和电子邮件有关的问题都和 sendmail 有关,除非系统管理员较偏执,才会用其它的系统。因此,意见信箱的设计开发,也是使用 sendmail 来达成所需要的功能。而 WindowsNT 系统中,由于没有 sendmail 程式,需要另行符费购买,或使用其它的邮件派送软体,因此本节程式无法在 WindowsNT 系统执行。
 
  程式的流程如下
 
  送出填写意见的表格到使用者的浏览器上。
 
  使用者填好后送出资料到伺服器。
 
  伺服器将使用者填的资料整理后,存入档案。
 
  利用 UNIX 的管道指令及 sendmail 程式将意见送给系统管理人员。
 
  伺服器通知使用者意见已送出。
 
  以下就是完整的范例程式
 
  以下为引用的内容:
  <html>
  <head>
  <title>意见信箱</title>
  </head>
  <body>
  <?php
 
  $mailto="yourname@CuoXIn.com";
  if (($topic!="") and ($Email!="") and ($body!="")) {
  $tmpfilename = tempnam("/tmp", "dm");
  $fp = fopen($tmpfilename, "w");
  fwrite($fp, "From: ".$Email."/n");
  fwrite($fp, "Subject: ".$topic." <访客来信>/n/n");
  fwrite($fp, $body."/n/n");
  fwrite($fp, "送信人:".$sender."/n");
  fwrite($fp, "发信IP:".$REMOTE_ADDR."/n");
  fclose($fp);
 
  $execstr="cat ".$tmpfilename." │ /usr/lib/sendmail ".$mailto;
  exec($execstr);
 
  $execstr="echo $sender $REMOTE_HOST >> /var/log/mail.log";
  exec($execstr);
  echo "信件已送出!!本站工作人员尽快处理您的问题<p><br><br><br><br><br>";
  } else {
  ?>
  <form action=<? echo($GLOBALS["PHP_SELF"]); ?> method=post>
  <table border=0>
  <tr><td>主题</td><td><input type=text size=20 name=topic></tr>
  <tr><td>姓名</td><td><input type=text size=20 name=sender></tr>
  <tr><td>Email</td><td><input type=text size=20 name=Email></tr>
  <tr><td colspan=2>内容<br><textarea cols=26 rows=10 name=body></textarea></td></tr>
  <tr><td colspan=2><div align=right><input type=submit value="送出"></td></tr>
  </table>
  </form>
  <?
  }
  ?>
  </body>
  </html>
 
  程式在 PHP 处理剖析时,先判断使用者是否填入资料。若没有资料则送出意见表单给使用者,若有资料则表示使用者已输入相关的资料,则进行处理。
  
  UNIX 中最强的功能就是管道,可以利用管道来处理寄信的动作,如下
 
  cat tmpfilename │ /usr/lib/sendmail CuoXIn@CuoXIn.com
 
  这个指令的意思为将档案送给管道彼端的 sendmail 程式,而 sendmail 将该档案寄给 wilson@CuoXIn.com。因此可利用本管道指令将意见寄给 Webmaster 或是客服部门的人员。若要寄给多人,可利用 mailing list 或是多用几次寄信的管道指令。
  
  当然执行寄信的方式不只一种,可以利用 mail() 函式来寄信,亦可利用 UNIX 的网路 socket 来做,所谓戏法人人会变,巧妙各有不同。

(编辑:晋中站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读