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中处理模拟rewrite 效果
Dec 09 PHP
程序员编程十条戒律
Jul 09 PHP
php 生成WML页面方法详解
Aug 09 PHP
PHP 身份验证方面的函数
Oct 11 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
ajax php传递和接收变量实现思路及代码
Dec 19 PHP
浅析php插件 HTMLPurifier HTML解析器
Jul 01 PHP
浅析php静态方法与非静态方法的用法区别
May 17 PHP
Win7环境下Apache连接MySQL提示连接已重置的解决办法
May 09 PHP
PHP后端银联支付及退款实例代码
Jun 23 PHP
PHP下载文件函数与用法示例
Sep 27 PHP
基于laravel缓冲cache的用法详解
Oct 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
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
php中比较简单的导入phpmyadmin生成的sql文件的方法
2011/06/28 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
Laravel 中使用 Vue.js 实现基于 Ajax 的表单提交错误验证操作
2017/06/30 PHP
深入理解Javascript里的依赖注入
2014/03/19 Javascript
jquery的clone方法应用于textarea和select的bug修复
2014/06/26 Javascript
获取当前月(季度/年)的最后一天(set相关操作及应用)
2016/12/27 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
详解Node.js开发中的express-session
2017/05/19 Javascript
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
2019/01/18 jQuery
如何在JavaScript中创建具有多个空格的字符串?
2020/02/23 Javascript
[03:40]DOTA2英雄梦之声_第01期_炼金术士
2014/06/23 DOTA
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python最基本的数据类型以及对元组的介绍
2015/04/14 Python
Python下的常用下载安装工具pip的安装方法
2015/11/13 Python
Python安装Numpy和matplotlib的方法(推荐)
2017/11/02 Python
Python3使用正则表达式爬取内涵段子示例
2018/04/22 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
2018/12/15 Python
Python使用matplotlib 画矩形的三种方式分析
2019/10/31 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
python对接ihuyi实现短信验证码发送
2020/05/10 Python
python程序需要编译吗
2020/06/19 Python
Python读取二进制文件代码方法解析
2020/06/22 Python
瑞士国际航空官网:SWISS
2016/07/21 全球购物
美国电视购物:QVC
2017/02/06 全球购物
求职者应聘的自我评价
2013/10/16 职场文书
料理师求职信
2014/01/30 职场文书
草船借箭教学反思
2014/02/03 职场文书
护士岗位求职应聘自荐书范文
2014/02/12 职场文书
我爱我校演讲稿
2014/05/21 职场文书
党员查摆四风问题思想汇报
2014/10/25 职场文书
2014年图书馆工作总结
2014/11/25 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
《分数的意义》教学反思
2016/02/20 职场文书
干货:我将这样书写我的演讲稿!
2019/05/09 职场文书