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的curl实现get和post的代码
Aug 23 PHP
php设计模式 DAO(数据访问对象模式)
Jun 26 PHP
PHP的cURL库简介及使用示例
Feb 06 PHP
Laravel 5 框架入门(一)
Apr 09 PHP
7个鲜为人知却非常实用的PHP函数
Jul 01 PHP
作为程序员必知的16个最佳PHP库
Dec 09 PHP
php魔术方法功能与用法实例分析
Oct 19 PHP
PHP用户验证和标签推荐的简单使用
Oct 31 PHP
Yii2――使用数据库操作汇总(增删查改、事务)
Dec 19 PHP
PHP 实现字符串翻转(包含中文汉字)的实现代码
Apr 01 PHP
利用PHP_XLSXWriter代替PHPExcel的方法示例
Jul 16 PHP
PHP pthreads v3下同步处理synchronized用法示例
Feb 21 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导入导出excel实例
2013/10/25 PHP
php生成4位数字验证码的实现代码
2015/11/23 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
简单三步,搞掂内存泄漏
2007/03/10 Javascript
jQuery 获取对象 定位子对象
2010/05/31 Javascript
JS实现商品倒计时实现代码
2013/05/03 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
javascript中for/in循环及使用技巧
2015/09/01 Javascript
深入理解jQuery中的事件冒泡
2016/05/24 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
支持移动端原生js轮播图
2017/02/16 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
vue的toast弹窗组件实例详解
2018/05/14 Javascript
vue权限路由实现的方法示例总结
2018/07/29 Javascript
JS工厂模式开发实践案例分析
2019/10/17 Javascript
微信小程序scroll-view锚点链接滚动跳转功能
2019/12/12 Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
2020/04/27 Javascript
解决Mint-ui 框架Popup和Datetime Picker组件滚动穿透的问题
2020/11/04 Javascript
python中的__init__ 、__new__、__call__小结
2014/04/25 Python
Python随机生成一个6位的验证码代码分享
2015/03/24 Python
Win10下Python环境搭建与配置教程
2016/11/18 Python
Python 实现12306登录功能实例代码
2018/02/09 Python
Python数据可视化之画图
2019/01/15 Python
Python使用到第三方库PyMuPDF图片与pdf相互转换
2019/05/03 Python
python数组循环处理方法
2019/08/26 Python
通过实例简单了解Python sys.argv[]使用方法
2020/08/04 Python
解决Python import .pyd 可能遇到路径的问题
2021/03/04 Python
实列教程 一款基于jquery和css3的响应式二级导航菜单
2014/11/13 HTML / CSS
德国著名廉价网上药店:Shop-Apotheke
2017/07/23 全球购物
公司聚餐通知
2015/04/22 职场文书
抢劫罪辩护词
2015/05/21 职场文书
团队执行力培训心得体会
2015/08/15 职场文书
《纸船和风筝》教学反思
2016/02/18 职场文书
超详细教你怎么升级Mysql的版本
2021/05/19 MySQL
Windows中Redis安装配置流程并实现远程访问功能
2021/06/07 Redis
浅谈MySQL函数
2021/10/05 MySQL