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 相关文章推荐
header()函数使用说明
Nov 23 PHP
基于PHP array数组的教程详解
Jun 05 PHP
深入array multisort排序原理的详解
Jun 18 PHP
php旋转图片90度的方法
Nov 07 PHP
php中cookie实现二级域名可访问操作的方法
Nov 11 PHP
PHP JSON格式的中文显示问题解决方法
Apr 09 PHP
php类自动加载器实现方法
Jul 28 PHP
php实现HTML实体编号与非ASCII字符串相互转换类实例
Nov 02 PHP
php 函数使用可变数量的参数方法
May 02 PHP
PHP长网址与短网址的实现方法
Oct 13 PHP
PHP检测一个数组有没有定义的方法步骤
Jul 20 PHP
Thinkphp 框架基础之入口文件功能、定义与用法分析
Apr 27 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基础学习笔记
2007/03/18 PHP
关于php mvc开发模式的感想
2011/06/28 PHP
PHP json_decode函数详细解析
2014/02/17 PHP
Ruffy javascript 学习笔记
2009/11/30 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
ECMAScript 5中的属性描述符详解
2015/03/02 Javascript
Bootstrap基本样式学习笔记之标签(5)
2016/12/07 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
JavaScript实现计算多边形质心的方法示例
2018/01/31 Javascript
Bootstrap实现的表格合并单元格示例
2018/02/06 Javascript
JS+CSS实现随机点名(实例代码)
2019/11/04 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
js 数据类型判断的方法
2020/12/03 Javascript
[01:04:14]OG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
TensorFlow模型保存/载入的两种方法
2018/03/08 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
详解python读取和输出到txt
2019/03/29 Python
python 梯度法求解函数极值的实例
2019/07/10 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
基于TensorFlow常量、序列以及随机值生成实例
2020/01/04 Python
关于keras.layers.Conv1D的kernel_size参数使用介绍
2020/05/22 Python
加拿大领先的时尚和体育零售商:Sporting Life
2019/12/15 全球购物
简短证婚人证婚词
2014/01/09 职场文书
表扬信格式
2014/01/12 职场文书
一年级班主任寄语
2014/01/19 职场文书
生产部管理制度
2014/01/31 职场文书
《绿色蝈蝈》教学反思
2014/03/02 职场文书
大学毕业生个人自荐书
2014/07/02 职场文书
公司离职证明范本(汇总)
2014/09/10 职场文书
大班下学期个人总结
2015/02/13 职场文书
2015年工程部工作总结
2015/04/30 职场文书
爱国主义主题班会
2015/08/14 职场文书
党员干部学法用法心得体会
2016/01/21 职场文书
Nginx服务器添加Systemd自定义服务过程解析
2021/03/31 Servers
threejs太阳光与阴影效果实例代码
2022/04/05 Javascript