Heim > php教程 > php手册 > 如何正确运用PHP发送邮件函数

如何正确运用PHP发送邮件函数

WBOY
Freigeben: 2016-06-13 11:09:11
Original
1106 Leute haben es durchsucht

PHP发送邮件函数的应用代码示例:

  1. #echo send_mail($_POST["email"],$tosubject,$_POST["errortext"]);  
  2. echo send_mail('someone@126.com','only a test mail for test php mail function','一封垃圾邮件');  
  3. echo time();  
  4.  
  5. function send_mail($to, $subject = 'No subject', $body) {  
  6. $loc_host = "mail.server"; //发信计算机名,可随意  
  7. $smtp_acc = "smp@163.com"; //Smtp认证的用户名  
  8. $smtp_pass="pwdpwd"; //Smtp认证的密码,一般等同pop3密码  
  9. $smtp_host="smtp.163.com"; //SMTP服务器地址,类似 smtp.tom.com  
  10. $from="smp@163.com"; //发信人Email地址,你的发信信箱地址  
  11. $deliver=$smtp_acc; //回复到指定邮箱  
  12. $headers = "Content-Type: text/plain; charset="gb2312"rnContent-Transfer-Encoding: base64";  
  13. $lb="rn"; //linebreak   
  14. $hdr = explode($lb,$headers); //解析后的hdr  
  15. if($body) {$bdy = preg_replace("/^./","..",explode($lb,$body));}//解析后的Body  
  16.  
  17. $smtp = array(  
  18. //1、EHLO,期待返回220或者250  
  19. array("EHLO ".$loc_host.$lb,"220,250","HELO error: "),  
  20. //2、发送Auth Login,期待返回334  
  21. array("AUTH LOGIN".$lb,"334","AUTH error:"),  
  22. //3、发送经过Base64编码的用户名,期待返回334  
  23. array(base64_encode($smtp_acc).$lb,"334","AUTHENTIFICATION error : "),  
  24. //4、发送经过Base64编码的密码,期待返回235  
  25. array(base64_encode($smtp_pass).$lb,"235","AUTHENTIFICATION error : "));  
  26. //5、发送Mail From,期待返回250  
  27. $smtp[] = array("MAIL FROM: ".$from.">".$lb,"250","MAIL FROM error: ");  
  28. //6、发送Rcpt To。期待返回250  
  29. $smtp[] = array("RCPT TO: ".$to.">".$lb,"250","RCPT TO error: ");  
  30. //7、发送DATA,期待返回354  
  31. $smtp[] = array("DATA".$lb,"354","DATA error: ");  
  32. //8.0、发送From  
  33. $smtp[] = array("From: ".$deliver.$lb,"","");  
  34. //8.2、发送To  
  35. $smtp[] = array("To: ".$to.$lb,"","");  
  36. //8.1、发送标题  
  37. $smtp[] = array("Subject: ".$subject.$lb,"","");  
  38. //8.3、发送其他Header内容  
  39. foreach($hdr as $h) {$smtp[] = array($h.$lb,"","");}  
  40. //8.4、发送一个空行,结束Header发送  
  41. $smtp[] = array($lb,"","");  
  42. //8.5、发送信件主体  
  43. if($bdy) {foreach($bdy as $b) {$smtp[] = array(base64_encode($b.$lb).$lb,"","");}}  
  44. //9、发送“.”表示信件结束,期待返回250  
  45. $smtp[] = array(".".$lb,"250","DATA(end)error: ");  
  46. //10、发送Quit,退出,期待返回221  
  47. $smtp[] = array("QUIT".$lb,"221","QUIT error: ");  
  48.  
  49. //打开smtp服务器端口  
  50. $fp = @fsockopen($smtp_host, 25);  
  51. if (!$fp) echo "b>Error:b> Cannot conect to ".$smtp_host."br>";  
  52. while($result = @fgets($fp, 1024)){if(substr($result,3,1) == " ") { break; }}  
  53.  
  54. $result_str="";  
  55. //发送smtp数组中的命令/数据  
  56. foreach($smtp as $req){  
  57. //发送信息  
  58. @fputs($fp, $req[0]);  
  59. //如果需要接收服务器返回信息,则  
  60. if($req[1]){  
  61. //接收信息  
  62. while($result = @fgets($fp, 1024)){  
  63. if(substr($result,3,1) == " ") { break; }  
  64. };  
  65. if (!strstr($req[1],substr($result,0,3))){  
  66. $result_str.=$req[2].$result."br>";  
  67. }  
  68. }  
  69. }  
  70. //关闭连接  
  71. @fclose($fp);  
  72. return $result_str;  
  73. }  

希望上面这段代码示例能让大家充分掌握PHP发送邮件函数的运用。
 


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Empfehlungen
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage