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之第七天
Oct 09 PHP
php header Content-Type类型小结
Jul 03 PHP
PHP创建桌面快捷方式的实例代码
Feb 17 PHP
php实现的ping端口函数实例
Nov 12 PHP
PHP6连接SQLServer2005的三部曲
Apr 15 PHP
Ajax提交表单时验证码自动验证 php后端验证码检测
Jul 20 PHP
PHP获取页面执行时间的方法(推荐)
Dec 10 PHP
php mysql_list_dbs()函数用法示例
Mar 29 PHP
PHP实现动态创建XML文档的方法
Mar 30 PHP
原生JS实现Ajax通过POST方式与PHP进行交互的方法示例
May 12 PHP
PHP children()函数讲解
Feb 03 PHP
TP5框架请求响应参数实例分析
Oct 17 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
中英文字符串翻转函数
2008/12/09 PHP
php中in_array函数用法分析
2014/11/15 PHP
PHP中配置IIS7实现基本身份验证的方法
2015/09/24 PHP
解决Laravel自定义类引入和命名空间的问题
2019/10/15 PHP
学习YUI.Ext 第三天
2007/03/10 Javascript
jQuery each()方法的使用方法
2010/03/18 Javascript
wangEditor编辑器失去焦点后仍然可以在原位置插入图片分析
2015/05/06 Javascript
jquery实现两个图片渐变切换效果的方法
2015/06/25 Javascript
轻量级jQuery插件slideBox实现带底栏轮播(焦点图)代码
2016/03/28 Javascript
knockoutjs动态加载外部的file作为component中的template数据源的实现方法
2016/09/01 Javascript
微信小程序 canvas API详解及实例代码
2016/10/08 Javascript
纯JavaScript手写图片轮播代码
2016/10/20 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
2017/02/20 Javascript
js实现楼层导航功能
2017/02/23 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
Javascript删除数组里的某个元素
2019/02/28 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
Vue实现简单计算器
2021/01/20 Vue.js
python中format()函数的简单使用教程
2018/03/14 Python
Python3多进程 multiprocessing 模块实例详解
2018/06/11 Python
python中pip的安装与使用教程
2018/08/10 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
Python 多线程其他属性以及继承Thread类详解
2019/08/28 Python
使用 Python 合并多个格式一致的 Excel 文件(推荐)
2019/12/09 Python
什么是python的id函数
2020/06/11 Python
python线程池 ThreadPoolExecutor 的用法示例
2020/10/10 Python
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
请问软件开发中的设计模式你会使用哪些
2015/05/13 面试题
妇科医生自荐信
2013/11/05 职场文书
普师专业个人自荐信范文
2013/11/26 职场文书
党员公开承诺书2016
2016/03/24 职场文书
MySQL中utf8mb4排序规则示例
2021/08/02 MySQL
Go语言特点及基本数据类型使用详解
2022/03/21 Golang