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 上传文件类型判断函数(避免上传漏洞 )
Jun 08 PHP
利用Memcached在php下实现session机制 替换PHP的原生session支持
Aug 21 PHP
PHP实现指定字段的多维数组排序函数分享
Mar 09 PHP
php正则替换处理HTML页面的方法
Jun 17 PHP
php基本函数汇总
Jul 09 PHP
PHP中模拟链表和链表的基本操作示例
Feb 27 PHP
thinkPHP删除前弹出确认框的简单实现方法
May 16 PHP
ThinkPHP实现登录退出功能
Jun 29 PHP
PHP memcache在微信公众平台的应用方法示例
Sep 13 PHP
PHP生成二维码与识别二维码的方法详解【附源码下载】
Mar 07 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 PHP
PHP读取文件或采集时解决中文乱码
Mar 09 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
smarty的保留变量问题
2008/10/23 PHP
解决文件名解压后乱码的问题 将文件名进行转码的代码
2012/01/10 PHP
基于PHP常用字符串的总结(待续)
2013/06/07 PHP
PHP6连接SQLServer2005的三部曲
2016/04/15 PHP
Laravel自动生成UUID,从建表到使用详解
2019/10/24 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
JavaScript中出现乱码的处理心得
2009/12/24 Javascript
JQuery 插件制作实践 xMarquee插件V1.0
2010/04/02 Javascript
JavaScript 匿名函数(anonymous function)与闭包(closure)
2011/10/04 Javascript
js实现的切换面板实例代码
2013/06/17 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
Node.js中的process.nextTick使用实例
2015/06/25 Javascript
js实现字符全排列算法的简单方法
2017/05/01 Javascript
Javascript实现的StopWatch功能示例
2017/06/13 Javascript
在vue中实现简单页面逆传值的方法
2017/11/27 Javascript
详解设置Webstorm 利用babel将ES6自动转码成ES5
2017/12/20 Javascript
说说Vue.js中的functional函数化组件的使用
2019/02/12 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
Python打包可执行文件的方法详解
2016/09/19 Python
解决os.path.isdir() 判断文件夹却返回false的问题
2019/11/29 Python
澳大利亚排名第一的在线酒类商店:MyBottleShop
2018/04/26 全球购物
洛杉矶健身中心女性专用运动服饰品牌:Marika
2018/05/09 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
金属材料工程毕业生个人的自我评价
2013/11/28 职场文书
十八届三中全会个人学习材料
2014/02/13 职场文书
《太阳》教学反思
2014/02/21 职场文书
旅游安全协议书
2014/04/21 职场文书
我们的节日清明节活动总结
2014/04/30 职场文书
协会周年庆活动方案
2014/08/26 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2015年妇联工作总结范文
2015/04/22 职场文书
地道战观后感400字
2015/06/04 职场文书
2016猴年春节问候语
2015/11/11 职场文书
如何将JavaScript将数组转为树形结构
2021/06/02 Javascript
nginx请求限制配置方法
2021/07/09 Servers