PHP处理postfix邮件内容的方法


Posted in PHP onJune 16, 2015

本文实例讲述了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 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程序设计有所帮助。

PHP 相关文章推荐
使用PHP和XSL stylesheets转换XML文档
Oct 09 PHP
php二分法在IP地址查询中的应用
Aug 12 PHP
重新封装zend_soap实现http连接安全认证的php代码
Jan 12 PHP
php对二维数组按指定键值key排序示例代码
Nov 26 PHP
PHP编译安装中遇到的两个错误和解决方法
Aug 20 PHP
php三种实现多线程类似的方法
Oct 30 PHP
Thinkphp无限级分类代码
Nov 11 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
Laravel中为什么不使用blpop取队列详析
Aug 01 PHP
php如何计算两坐标点之间的距离
Dec 29 PHP
PHP中localeconv()函数的用法
Mar 26 PHP
php依赖注入知识点详解
Sep 23 PHP
PHP限制HTML内容中图片必须是本站的方法
Jun 16 #PHP
php采集中国代理服务器网的方法
Jun 16 #PHP
分享php分页的功能模块
Jun 16 #PHP
PHP生成plist数据的方法
Jun 16 #PHP
php动态绑定变量的用法
Jun 16 #PHP
php实现在服务器端调整图片大小的方法
Jun 16 #PHP
PHP正则验证Email的方法
Jun 15 #PHP
You might like
php简单开启gzip压缩方法(zlib.output_compression)
2013/04/13 PHP
php实现Mysql简易操作类
2015/10/11 PHP
浅析PHP类的反射来实现依赖注入过程
2018/02/06 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
js实现向右横向滑出的二级菜单效果
2015/08/27 Javascript
js实现纯前端的图片预览
2016/04/27 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
AngularJs篇:使用AngularJs打造一个简易权限系统的实现代码
2016/12/26 Javascript
微信小程序中hidden不生效原因的解决办法
2017/04/26 Javascript
Jquery中attr与prop的区别详解
2017/05/27 jQuery
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
基于vue打包后字体和图片资源失效问题的解决方法
2018/03/06 Javascript
使用JavaScript破解web
2018/09/28 Javascript
vue-cli的build的文件夹下没有dev-server.js文件配置mock数据的方法
2019/04/17 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
vue.js this.$router.push获取不到params参数问题
2020/03/03 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
weui上传多图片,压缩,base64编码的示例代码
2020/06/22 Javascript
python有证书的加密解密实现方法
2014/11/19 Python
详解Python装饰器由浅入深
2016/12/09 Python
python snownlp情感分析简易demo(分享)
2017/06/04 Python
Python 字符串与二进制串的相互转换示例
2018/07/23 Python
对Python中plt的画图函数详解
2018/11/07 Python
浅谈python中真正关闭socket的方法
2018/12/18 Python
解决python字典对值(值为列表)赋值出现重复的问题
2019/01/20 Python
python手写均值滤波
2020/02/19 Python
基于python实现简单C/S模式代码实例
2020/09/14 Python
心得体会怎么写
2013/12/30 职场文书
洗发水广告词
2014/03/13 职场文书
民生工程实施方案
2014/03/22 职场文书
个人委托书
2014/07/31 职场文书
交通局领导班子群众路线教育实践活动对照检查材料思想汇报
2014/10/09 职场文书
护林员个人总结
2015/03/04 职场文书
同学会感言
2015/07/30 职场文书
pd.DataFrame中的几种索引变换的实现
2022/06/16 Python