• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

php读取、正则匹配邮件内容的方法

php 搞代码 3年前 (2022-01-22) 13次浏览 已收录 0个评论

本篇文章主要介绍php读取、正则匹配邮件内容的方法,感兴趣的朋友参考下,希望对大家有所帮助。

本文实例讲述了PHP处理postfix邮件内容的方法。具体如下:

<?php//从输入读取到所有的邮件内容$email = "";$fd = fopen("php://stdin", "r");while (!feof($fd)) { $email .= fread($fd, 1024);}fclose($fd);//记录所有的内容,测试file_put_contents("/tmp/mail/".time(), $email);//处理邮件$lines = explode("\n", $email);// empty vars$from = "";$date = "";$subject = "";$message = "";$splittingheaders = true;for ($i=0; $i<count($lines); $i++) { if ($splittingheaders) {  // look out for special headers  if (preg_match("/^Subject: (.*)/", $lines[$i], $matches)) {   $subject = $matches[1];  }  if (preg_match("/^From: (.*)/", $lines[$i], $matches)) {   if(strpos($lines[$i],"<")){    //the name exist too in from header    $data = explode('<',$lines[$i]);    $from = substr(trim($data[1]),0,-1);   }else{    //only the mail    $from = $matches[1];   }  }  if (preg_match("/^Date: (.*)/", $lines[$i], $matches)) {   $date = $matches[1];  } } else {  // not a <em>/本2文来源[email protected]搞@^&代*@码2网</em><strong>搞gaodaima代码</strong>header, but message  $message .= $lines[$i]."\n"; } if (trim($lines[$i])=="") {  // empty line, header section has ended  $splittingheaders = false; }}$when = date("Y-m-d G:i:s");$data = explode('@',$from);$username = $data[0];//记录到数据库$sql = "insert into mails ( `username`, `from`, `subject`, `date`, `message`) values ( '$username', '$from', '$subject', '$when', '$message')";//测试file_put_contents("/tmp/mail2.log", $sql);?>

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

PHP中Socket的基础知识

php实现发送和接收短信的功能

php可逆加密的方法及原理

以上就是php读取、正则匹配邮件内容的方法的详细内容,更多请关注搞代码gaodaima其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:php读取、正则匹配邮件内容的方法

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址