zoukankan      html  css  js  c++  java
  • 20080511 php send_mail()

     

    写了一个网站,反馈页面要用到 php 发邮件,无奈网站空间的 php 没有配置可用的邮件服务器,发现 php 也可通过
    socket 裸发邮件。配一个可用的帐号,下面函数就可用了。
     

     1function send_mail($to, $subject = '未标题', $body){
     2  $loc_host = "smtp.126.com";
     3  $smtp_acc = "youraccount";
     4  $smtp_pass = "yourpassword";
     5  $smtp_host = "smtp.126.com";
     6  $from = "admin@126.com";
     7  
     8  $headers = "Content-Type: text/plain; charset=\"gb2312\"\r\nContent-Transfer-Encoding:base64";
     9  $lb = "\r\n";
    10  $hdr = explode($lb, $headers);
    11  if($body){
    12    $bdy = preg_replace("/^\./", "..", explode($lb, $body));
    13  }
    14  
    15  $smtp = array(
    16    array("EHLO ".$loc_host.$lb, "220, 250", "HELO error: "),
    17    array("AUTH LOGIN".$lb, "334", "AUTH error: "),
    18    array(base64_encode($smtp_acc).$lb, "334", "AUTHENTIFICATION error: "),
    19    array(base64_encode($smtp_pass).$lb, "235", "AUTHENTIFICATION error:")
    20  );
    21  
    22  $smtp[] = array("MAIL FROM: <".$from.">".$lb, "250", "MAIL FROM error: ");
    23  $smtp[] = array("RCPT TO: <".$to.">".$lb, "250", "RCPT TO error: ");
    24  $smtp[] = array("DATA".$lb, "354", "DATA error: ");
    25  
    26  $smtp[] = array("From: ".$from.$lb, "", "");
    27  $smtp[] = array("To: ".$to.$lb, "", "");
    28  $smtp[] = array("Subject: ".$subject.$lb, "", "");
    29  
    30  foreach($hdr as $h){
    31    $smtp[] = array($h.$lb, "", "");
    32  }
    33  
    34  $smtp[] = array($lb, "", "");
    35  
    36  if($bdy){
    37    foreach($bdy as $b){
    38      $smtp[] = array(base64_encode($b.$lb).$lb, "", "");
    39    }
    40  }
    41  $smtp[] = array(".".$lb, "250", "DATA(end) error: ");
    42  $smtp[] = array("QUIT".$lb, "221", "QUIT error: ");
    43  
    44  $fp = (@fsockopen($smtp_host, 25));
    45  if(!$fpecho "<strong>Error:</strong> Cannot connect to ".$smtp_host."<br />";
    46  while($result = @fgets($fp, 1024)){
    47    if(substr($result, 3, 1== " "){ break; }
    48  }
    49  $result_str = "";
    50  foreach($smtp  as $req){
    51    @fputs($fp, $req[0]);
    52    if($req[1]){
    53      while($result = @fgets($fp, 1024)){
    54        if(substr($result, 3, 1== " "){ break; }
    55      }
    56      if(!strstr($req[1], substr($result, 0, 3))){
    57        $result_str.= $reg[2].$result."<br />";
    58      }
    59    }
    60  }
    61  @fclose($fp);
    62  return $result_str;
    63}
    64
    65
  • 相关阅读:
    xcode5.1上真机调试报告No architectures to compile for...的解决办法
    Altium Designer元件库--多单元元器件的制作
    COMS门电路的设计及其优化--以异或门为例
    从器件物理层面看MOSFET的内部结构
    VHDL与Verilog硬件描述语言TestBench的编写
    C语言求解Excel地址转换问题
    数字黑洞求解问题
    计算机显示电池出现问题
    Charles安装
    滑动窗口1——无重复字符的最长字串
  • 原文地址:https://www.cnblogs.com/likun/p/1192769.html
Copyright © 2011-2022 走看看