1.解析邮件头

# $mailfile为邮件文件路径

function parsemail($mailfile){

echo $mailfile."
";

if(file_exists($mailfile)){

$fp = fopen($mailfile, "r");

if (!$fp){

die("open mailfile failed!");

}else{

while(($line = chop(fgets($fp,1024))) && $line !== ""){

echo htmlspecialchars($line)."
";

}

}

fclose($fp);

}else{

echo "file not exists";

}

}

2.根据文件名和ino号查找邮件文件

# $mid为ino

function getmailfile($mid,$mailpath){

$newpath = $mailpath."/new/";

$curpath = $mailpath."/cur/";

$newhandle = opendir($newpath);

while(($file = readdir($newhandle)) !== false ){

if ($file != "." && $file != ".." && stat($newpath.$file)['ino'] == $mid){

$mailfile = $newpath.$file;

}

}

closedir($newhandle);

$curhandle = opendir($curpath);

while(($file = readdir($curhandle)) !== false ){

if ($file != "." && $file != ".." && stat($curpath.$file)['ino'] == $mid){

$mailfile = $curpath.$file;

}

}

closedir($curhandle);

return $mailfile;

}

3.用parsemail函数

function parsemail($mailfile){

$mime = mailparse_msg_parse_file($mailfile);

$struct = mailparse_msg_get_structure($mime);

foreach ($struct as $x => $y) {

$section = mailparse_msg_get_part($mime, $y);

$info = mailparse_msg_get_part_data($section);

if ($info["content-disposition"] == 'attachment'){

# 附件名编码过的要解码

$filename = Decode_mime($info["content-name"]);

ob_start();

mailparse_msg_extract_part_file($section, $mailfile);

$content = ob_get_contents();

ob_end_clean();

# 把附件写到临时目录

$fh = fopen("/home/temp/".$filename,"w+");

fwrite($fh, $content);

fclose($fh);

}

}

}

function Decode_mime($Str){

if( substr_count($Str,'=?')==0 ) return $Str;

list($Token,$Charset,$Encoding,$Str,$End) = preg_split('/\?/',$Str,5);

$End = preg_replace("/^\=/","",$End);

$Token = preg_replace("/\=/","",$Token);

$Encoding = strtolower($Encoding);

switch($Encoding){

case 'b':

$Text = trim(base64_decode($Str));

break;

case 'q':

$Text = trim(quoted_printable_decode($Str));

}

if( substr_count($End,'=?')!=0 ) $End = Decode_mime($End);

return iconv($Charset,"utf-8//IGNORE",$Token.$Text.$End);

}

php 处理eml,PHP 解析Maildir 邮件格式(eml文件)相关推荐

  1. DICOM笔记-解析JPEG压缩格式DCM文件

      项目中使用了DICOM文件保存图像,之前经常遇到DICOM内放置的是short类型或者float类型的二维图像,按照之前的代码处理JEPG压缩的DICOM文件,当然会出现问题:从网上查到资料,是由 ...

  2. Java解析eml邮件格式文件

    基本介绍 关于邮件的需求总是以邮件发送或接收为主,之前涉及的技术选型有Java Mail.Apache Commons Email.Spring Mail,由于工作上的需要对eml格式的文件进行解析, ...

  3. 如何解析EML(邮件)格式的文件以及一款小巧的EML邮件阅读工具

    在理解EML格式的时候,先回顾一下历史,这样有助于理解邮件的格式,比如邮件传输时为何会有多种编码方式.此外,理解EML格式也有助于理解HTTP协议. 历史溯源 由于历史原因,我们目前看到的大部分的网络 ...

  4. MIME协议及源邮件格式分析

    转载链接:http://wenku.baidu.com/view/7246de671ed9ad51f01df277.html 电子邮件也许是一个Internet上的流行最广泛的应用.也是我们现在的大多 ...

  5. named 客户端无法解析_Outlook邮件附件无法直接打开?用这个办法轻松解决

    Outlook是一款办公场景中常被使用的邮箱工具.许多用户在用Outlook管理邮箱收发邮件的过程中,会遇到邮件中的附件被打包成winmail.dat格式文件无法打开的情况.今天邮箱课堂将分享邮件附件 ...

  6. 魔兽世界一个服务器发邮件给,今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看...

    今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看0 魔兽世界账号绑定-问题回复[BAM_A5DBE63ACAEB382839AF5BBE1A759733] 发件人 ...

  7. MailRaider Pro for Mac(Outlook邮件格式转换工具) v3.5.0永久激活

    MailRaider Pro for Mac是Mac系统上Outlook邮件格式转换工具,MailRaider Pro Mac版可以帮助用户在Mac电脑上打开 Outlook 邮件及附件,允许用户在M ...

  8. 3_HEIF/heic格式图片文件解析(20190107)

    3_HEIF/heic格式图片文件解析(20190107) HEIF/heic格式图片文件解析(20190107) 文章目录 参考: https://zhuanlan.zhihu.com/p/3466 ...

  9. C#验证Email是否真正存在,不是验证邮件格式,是邮件地址是否存在 .

    C#验证Email是否真正存在,不是验证邮件格式,是邮件地址是否存在 分类: .Net(C#) 2010-06-11 15:12 322人阅读 评论(0) 收藏 举报 在以往的编程中,比如编写用户的资 ...

  10. python解析log文件_python解析基于xml格式的日志文件

    大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我 ...

最新文章

  1. torch维度获取数据详解
  2. Java中的一直不能掌握的switch-case语句
  3. datatable转化泛型
  4. 解决miner.start() 返回null
  5. JQ实现单击按钮 倒计时获取验证码
  6. 微软 服务器系统,微软正在开发Windows Server 2022服务器系统
  7. 双Y轴echarts
  8. 036 关于网站的UV分析
  9. Spring事务管理
  10. 交换机配置常用的命令
  11. wso2 mysql_windows下 WSO2 Application Server配置 及 MySQL数据服务部署
  12. 经验系列之java拦截器获取POST入参导致@RequestBody参数丢失问题解决
  13. 网页通过Flash播放视频
  14. 使用spring的优势
  15. Epoch、Step和BatchSize的区别
  16. redis面试:缓存雪崩、缓存击穿、缓存穿透
  17. SCI投稿7个阶段的邮件模板!
  18. 关闭不断输出的batch acquisition of 0 triggers
  19. 微信小程序仿网易音乐播放器项目
  20. iMX8 Android Q 芯片级开发教程(1)

热门文章

  1. python英文文本分析和提取_Python实现英文新闻摘要自动提取
  2. 【JVM技术专题】 深入学习Parallel Scavenge回收器「 原理篇」
  3. linux系统下 blast,Linux下BLAST安装及BLAST使用
  4. java | (十六)XML、代理
  5. 弘辽科技:淘宝直通车点击量是什么意思?直通车点击量怎么提升?
  6. python数据分析设置教程视频_炼数成金女讲师Python数据分析实战应用视频教程
  7. 201671030116宋菲菲 实验三作业互评与改进报告
  8. 2016年排名Top 100的Java类库——在分析了47,251个依赖之后得出的结论(16年文章)...
  9. 60行C代码实现一个shell
  10. python爬取高校课程信息进行选课实战