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删除页面记录 同时刷新页面 删除条件用GET方式获得
Jan 10 PHP
php数据结构与算法(PHP描述) 查找与二分法查找
Jun 21 PHP
PHP utf-8编码问题,utf8编码,数据库乱码,页面显示输出乱码
Apr 08 PHP
深入php self与$this的详解
Jun 08 PHP
PHP中的多行字符串传递给JavaScript的两种方法
Jun 19 PHP
百度地图API使用方法详解
Aug 25 PHP
Yii实现简单分页的方法
Apr 29 PHP
PHP微信分享开发详解
Jan 14 PHP
Yii输入正确验证码却验证失败的解决方法
Jun 06 PHP
php格式文件打开的四种方法
Feb 24 PHP
php在windows环境下获得cpu内存实时使用率(推荐)
Feb 08 PHP
PHP常见的序列化与反序列化操作实例分析
Oct 28 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读取目录下所有文件的代码
2008/01/07 PHP
一步一步学习PHP(3) php 函数
2010/02/15 PHP
PHP stristr() 函数(不区分大小写的字符串查找)
2010/06/03 PHP
利用浏览器的Javascript控制台调试PHP程序
2014/01/08 PHP
php给一组指定关键词添加span标签的方法
2015/03/31 PHP
ThinkPHP模板循环输出Volist标签用法实例详解
2016/03/23 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
Yii框架页面渲染操作实例详解
2019/07/19 PHP
javascript下有关dom以及xml节点访问兼容问题
2007/11/26 Javascript
在html页面中包含共享页面的方法
2008/10/24 Javascript
javascript实现div的显示和隐藏的小例子
2013/06/25 Javascript
jquery列表拖动排列(由项目提取相当好用)
2014/06/17 Javascript
javascript正则表达式之分组概念与用法实例
2016/06/16 Javascript
BootStrap实现手机端轮播图左右滑动事件
2016/10/13 Javascript
javascript基本数据类型和转换
2017/03/17 Javascript
Angular使用ControlValueAccessor创建自定义表单控件
2019/03/08 Javascript
javascript实现鼠标点击生成文字特效
2019/12/24 Javascript
谈谈python中GUI的选择
2018/03/01 Python
python中os包的用法
2020/06/01 Python
Python无损压缩图片的示例代码
2020/08/06 Python
详解appium自动化测试工具(monitor、uiautomatorviewer)
2021/01/27 Python
荷兰游戏商店:Allyouplay
2019/03/16 全球购物
英国珠宝网站Argento: PANDORA、Olivia Burton和Nomination等
2020/05/08 全球购物
求职推荐信范文
2013/12/01 职场文书
中学运动会广播稿
2014/01/19 职场文书
12月小学生校园广播稿
2014/02/04 职场文书
入党介绍人评语
2014/05/06 职场文书
领导干部作风整顿个人剖析材料
2014/10/11 职场文书
工作批评与自我批评范文
2014/10/16 职场文书
2015年法制宣传月活动总结
2015/03/26 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
python用字节处理文件实例讲解
2021/04/13 Python
Nginx四层负载均衡的配置指南
2021/06/11 Servers
MongoDB 常用的crud操作语句
2021/06/20 MongoDB
MySQL数据库如何给表设置约束详解
2022/03/13 MySQL