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的header和asp中的redirect比较
Oct 09 PHP
PHP 应用程序的安全 -- 不能违反的四条安全规则
Nov 26 PHP
php实现mysql同步的实现方法
Oct 21 PHP
php 获取select下拉列表框的值
May 08 PHP
php注销代码(session注销)
May 31 PHP
PHP代码审核的详细介绍
Jun 13 PHP
初识PHP
Sep 28 PHP
Yii2.0 模态弹出框+ajax提交表单
May 22 PHP
浅谈Yii乐观锁的使用及原理
Jul 25 PHP
Laravel下生成验证码的类
Nov 15 PHP
实例分析PHP中PHPMailer发邮件
Dec 13 PHP
laravel5.6 框架邮件队列database驱动简单demo示例
Jan 26 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中magic_quotes_gpc对unserialize的影响分析
2014/12/16 PHP
PHP实现上一篇下一篇的方法实例总结
2016/09/22 PHP
PHP实现RTX发送消息提醒的实例代码
2017/01/03 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
JavaScript-世界上误解最深的语言分析
2007/08/12 Javascript
js函数在frame中的相互调用详解
2014/03/03 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
js动态添加的DIV中的onclick事件简单实例
2016/07/25 Javascript
js获取页面引用的css样式表中的属性值方法(推荐)
2016/08/19 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
js实现可旋转的立方体模型
2016/10/16 Javascript
基于JavaScript实现前端文件的断点续传
2016/10/17 Javascript
js实现随机抽选效果、随机抽选红色球效果
2017/01/13 Javascript
鼠标经过出现气泡框的简单实例
2017/03/17 Javascript
Nodejs模块载入运行原理
2018/02/23 NodeJs
angularJs 表格添加删除修改查询方法
2018/02/27 Javascript
详解性能更优越的小程序图片懒加载方式
2018/07/18 Javascript
简单了解JS打开url的方法
2020/02/21 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
nuxt引入组件和公共样式的操作
2020/11/05 Javascript
python采集百度百科的方法
2015/06/05 Python
python 爬取微信文章
2016/01/30 Python
Python使用迭代器打印螺旋矩阵的思路及代码示例
2016/07/02 Python
详解如何将python3.6软件的py文件打包成exe程序
2018/10/09 Python
浅谈pandas用groupby后对层级索引levels的处理方法
2018/11/06 Python
python实现ip代理池功能示例
2019/07/05 Python
使用django的ORM框架按月统计近一年内的数据方法
2019/07/18 Python
Python Sympy计算梯度、散度和旋度的实例
2019/12/06 Python
HTML5实现自带进度条和滑块滑杆效果
2018/04/17 HTML / CSS
DJI大疆德国官方商城:大疆无人机
2018/09/01 全球购物
公证委托书模板
2014/04/03 职场文书
竞争与合作演讲稿
2014/05/12 职场文书
2014医学院领导班子对照检查材料思想汇报
2014/09/19 职场文书
四风对照检查材料思想汇报
2014/09/20 职场文书
Go gorilla/sessions库安装使用
2022/08/14 Golang