php 处理eml,PHP 解析Maildir 邮件格式(eml文件)
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文件)相关推荐
- DICOM笔记-解析JPEG压缩格式DCM文件
项目中使用了DICOM文件保存图像,之前经常遇到DICOM内放置的是short类型或者float类型的二维图像,按照之前的代码处理JEPG压缩的DICOM文件,当然会出现问题:从网上查到资料,是由 ...
- Java解析eml邮件格式文件
基本介绍 关于邮件的需求总是以邮件发送或接收为主,之前涉及的技术选型有Java Mail.Apache Commons Email.Spring Mail,由于工作上的需要对eml格式的文件进行解析, ...
- 如何解析EML(邮件)格式的文件以及一款小巧的EML邮件阅读工具
在理解EML格式的时候,先回顾一下历史,这样有助于理解邮件的格式,比如邮件传输时为何会有多种编码方式.此外,理解EML格式也有助于理解HTTP协议. 历史溯源 由于历史原因,我们目前看到的大部分的网络 ...
- MIME协议及源邮件格式分析
转载链接:http://wenku.baidu.com/view/7246de671ed9ad51f01df277.html 电子邮件也许是一个Internet上的流行最广泛的应用.也是我们现在的大多 ...
- named 客户端无法解析_Outlook邮件附件无法直接打开?用这个办法轻松解决
Outlook是一款办公场景中常被使用的邮箱工具.许多用户在用Outlook管理邮箱收发邮件的过程中,会遇到邮件中的附件被打包成winmail.dat格式文件无法打开的情况.今天邮箱课堂将分享邮件附件 ...
- 魔兽世界一个服务器发邮件给,今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看...
今天突然收到一个网易魔兽世界邮件,不知道真的还是假的 他的邮件格式好奇怪!大家帮我看看0 魔兽世界账号绑定-问题回复[BAM_A5DBE63ACAEB382839AF5BBE1A759733] 发件人 ...
- MailRaider Pro for Mac(Outlook邮件格式转换工具) v3.5.0永久激活
MailRaider Pro for Mac是Mac系统上Outlook邮件格式转换工具,MailRaider Pro Mac版可以帮助用户在Mac电脑上打开 Outlook 邮件及附件,允许用户在M ...
- 3_HEIF/heic格式图片文件解析(20190107)
3_HEIF/heic格式图片文件解析(20190107) HEIF/heic格式图片文件解析(20190107) 文章目录 参考: https://zhuanlan.zhihu.com/p/3466 ...
- C#验证Email是否真正存在,不是验证邮件格式,是邮件地址是否存在 .
C#验证Email是否真正存在,不是验证邮件格式,是邮件地址是否存在 分类: .Net(C#) 2010-06-11 15:12 322人阅读 评论(0) 收藏 举报 在以往的编程中,比如编写用户的资 ...
- python解析log文件_python解析基于xml格式的日志文件
大家中午好,由于过年一直还没回到状态,好久没分享一波小知识了,今天,继续给大家分享一波Python解析日志的小脚本. 首先,同样的先看看日志是个啥样. 都是xml格式的,是不是看着就头晕了??没事,我 ...
最新文章
- torch维度获取数据详解
- Java中的一直不能掌握的switch-case语句
- datatable转化泛型
- 解决miner.start() 返回null
- JQ实现单击按钮 倒计时获取验证码
- 微软 服务器系统,微软正在开发Windows Server 2022服务器系统
- 双Y轴echarts
- 036 关于网站的UV分析
- Spring事务管理
- 交换机配置常用的命令
- wso2 mysql_windows下 WSO2 Application Server配置 及 MySQL数据服务部署
- 经验系列之java拦截器获取POST入参导致@RequestBody参数丢失问题解决
- 网页通过Flash播放视频
- 使用spring的优势
- Epoch、Step和BatchSize的区别
- redis面试:缓存雪崩、缓存击穿、缓存穿透
- SCI投稿7个阶段的邮件模板!
- 关闭不断输出的batch acquisition of 0 triggers
- 微信小程序仿网易音乐播放器项目
- iMX8 Android Q 芯片级开发教程(1)
热门文章
- python英文文本分析和提取_Python实现英文新闻摘要自动提取
- 【JVM技术专题】 深入学习Parallel Scavenge回收器「 原理篇」
- linux系统下 blast,Linux下BLAST安装及BLAST使用
- java | (十六)XML、代理
- 弘辽科技:淘宝直通车点击量是什么意思?直通车点击量怎么提升?
- python数据分析设置教程视频_炼数成金女讲师Python数据分析实战应用视频教程
- 201671030116宋菲菲 实验三作业互评与改进报告
- 2016年排名Top 100的Java类库——在分析了47,251个依赖之后得出的结论(16年文章)...
- 60行C代码实现一个shell
- python爬取高校课程信息进行选课实战