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 相关文章推荐
linux下为php添加curl扩展的方法
Jul 29 PHP
支持中文字母数字、自定义字体php验证码代码
Feb 27 PHP
Zend的MVC机制使用分析(一)
May 02 PHP
PHP中使用数组指针函数操作数组示例
Nov 19 PHP
php实现发送微信模板消息的方法
Mar 07 PHP
PHP接收App端发送文件流的方法
Sep 23 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
PHP封装的PDO数据库操作类实例
Jun 21 PHP
laravel自定义分页效果
Jul 23 PHP
浅析PHP类的反射来实现依赖注入过程
Feb 06 PHP
关于laravel后台模板laravel-admin select框的使用详解
Oct 03 PHP
PHP队列场景以及实现代码实例详解
Feb 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开发环境配置(MySQL数据库安装图文教程)
2010/04/28 PHP
file_get_contents获取不到网页内容的解决方法
2013/03/07 PHP
sae使用smarty模板的方法
2013/12/17 PHP
php使用qr生成二维码的示例分享
2014/01/20 PHP
php 发送带附件邮件示例
2014/01/23 PHP
php实现cookie加密的方法
2015/03/10 PHP
php实现对文件压缩简单的方法
2019/09/29 PHP
JavaScript计算字符串中每个字符出现次数的小例子
2013/07/02 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
vuejs响应用户事件(如点击事件)
2017/03/14 Javascript
详解webpack打包vue时提取css
2017/05/26 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
微信小程序模板(template)使用详解
2018/01/31 Javascript
JavaScript闭包原理与用法实例分析
2018/08/10 Javascript
Vue实现美团app的影院推荐选座功能【推荐】
2018/08/29 Javascript
Vue中axios的封装(报错、鉴权、跳转、拦截、提示)
2019/08/20 Javascript
js实现批量删除功能
2020/08/27 Javascript
vue的$http的get请求要加上params操作
2020/11/12 Javascript
JavaScript Dom实现轮播图原理和实例
2021/02/19 Javascript
Python中unittest用法实例
2014/09/25 Python
基于Python __dict__与dir()的区别详解
2017/10/30 Python
解决nohup执行python程序log文件写入不及时的问题
2019/01/14 Python
numpy.random.shuffle打乱顺序函数的实现
2019/09/10 Python
Python动态声明变量赋值代码实例
2019/12/30 Python
python使用openCV遍历文件夹里所有视频文件并保存成图片
2020/01/14 Python
Python爬虫实现百度翻译功能过程详解
2020/05/29 Python
凯特王妃父母建立的派对用品网站:Party Pieces
2017/05/28 全球购物
《风筝》教学反思
2014/04/10 职场文书
党的群众路线教育实践活动学习笔记
2014/11/05 职场文书
初中学生操行评语
2014/12/26 职场文书
先进人物事迹材料
2014/12/29 职场文书
2016年社会管理综治宣传月活动总结
2016/03/16 职场文书
完美处理python与anaconda环境变量的冲突问题
2021/04/07 Python
Vue通过懒加载提升页面响应速度
2021/05/10 Vue.js
PYTHON 使用 Pandas 删除某列指定值所在的行
2022/04/28 Python
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers