首页 php教程 php手册 PHP处理postfix的邮件内容

PHP处理postfix的邮件内容

Jun 21, 2016 am 08:54 AM
from lines nbsp quot

<ol class="dp-c">
<li class="alt"><span><span>01 <?php     </span></span></span></li>
<li><span> </span></li>
<li class="alt"><span>02      </span></li>
<li><span> </span></li>
<li class="alt"><span>03 #从输入读取到所有的邮件内容    </span></li>
<li><span> </span></li>
<li class="alt">
<span>04 </span><span class="vars">$email</span><span> = </span><span class="string">""</span><span>;    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>05 </span><span class="vars">$fd</span><span> = </span><span class="func">fopen</span><span>(</span><span class="string">"php://stdin"</span><span>, </span><span class="string">"r"</span><span>);    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>06 </span><span class="keyword">while</span><span> (!</span><span class="func">feof</span><span>(</span><span class="vars">$fd</span><span>)) {    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>07   </span><span class="vars">$email</span><span> .= </span><span class="func">fread</span><span>(</span><span class="vars">$fd</span><span>, 1024);    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>08 }    </span></li>
<li><span> </span></li>
<li class="alt">
<span>09 fclose(</span><span class="vars">$fd</span><span>);    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>10      </span></li>
<li><span> </span></li>
<li class="alt"><span>11 #记录所有的内容,测试    </span></li>
<li><span> </span></li>
<li class="alt">
<span>12 </span><span class="func">file_put_contents</span><span>(</span><span class="string">"/tmp/mail/"</span><span>.time(), </span><span class="vars">$email</span><span>);    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>13      </span></li>
<li><span> </span></li>
<li class="alt"><span>14 #处理邮件    </span></li>
<li><span> </span></li>
<li class="alt">
<span>15 </span><span class="vars">$lines</span><span> = </span><span class="func">explode</span><span>(</span><span class="string">"\n"</span><span>, </span><span class="vars">$email</span><span>);    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>16      </span></li>
<li><span> </span></li>
<li class="alt">
<span>17 </span><span class="comment">// empty vars   </span><span> </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>18 </span><span class="vars">$from</span><span> = </span><span class="string">""</span><span>;    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>19 </span><span class="vars">$date</span><span> = </span><span class="string">""</span><span>;    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>20 </span><span class="vars">$subject</span><span> = </span><span class="string">""</span><span>;    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>21 </span><span class="vars">$message</span><span> = </span><span class="string">""</span><span>;    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>22 </span><span class="vars">$splittingheaders</span><span> = true;    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>23      </span></li>
<li><span> </span></li>
<li class="alt">
<span>24 </span><span class="keyword">for</span><span> (</span><span class="vars">$i</span><span>=0; </span><span class="vars">$i</span><span><span class="func">count</span><span>(</span><span class="vars">$lines</span><span>); </span><span class="vars">$i</span><span>++) {    </span></span>
</li>
<li><span> </span></li>
<li class="alt">
<span>25   </span><span class="keyword">if</span><span> (</span><span class="vars">$splittingheaders</span><span>) {    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>26      </span></li>
<li><span> </span></li>
<li class="alt">
<span>27     </span><span class="comment">// look out for special headers   </span><span> </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>28     </span><span class="keyword">if</span><span> (preg_match(</span><span class="string">"/^Subject: (.*)/"</span><span>, </span><span class="vars">$lines</span><span>[</span><span class="vars">$i</span><span>], </span><span class="vars">$matches</span><span>)) {    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>29       </span><span class="vars">$subject</span><span> = </span><span class="vars">$matches</span><span>[1];    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>30     }    </span></li>
<li><span> </span></li>
<li class="alt">
<span>31     </span><span class="keyword">if</span><span> (preg_match(</span><span class="string">"/^From: (.*)/"</span><span>, </span><span class="vars">$lines</span><span>[</span><span class="vars">$i</span><span>], </span><span class="vars">$matches</span><span>)) {    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>32       </span><span class="keyword">if</span><span>(</span><span class="func">strpos</span><span>(</span><span class="vars">$lines</span><span>[</span><span class="vars">$i</span><span>],</span><span class="string">"<span>)){    </span></span>
</li>
<li><span> </span></li>
<li class="alt">
<span>33         </span><span class="comment">//the name exist too in from header   </span><span> </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>34         </span><span class="vars">$data</span><span> = </span><span class="func">explode</span><span>(</span><span class="string">'<span>,</span><span class="vars">$lines</span><span>[</span><span class="vars">$i</span><span>]);    </span></span>
</li>
<li><span> </span></li>
<li class="alt">
<span>35         </span><span class="vars">$from</span><span> = </span><span class="func">substr</span><span>(trim(</span><span class="vars">$data</span><span>[1]),0,-1);    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>36       }</span><span class="keyword">else</span><span>{    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>37         </span><span class="comment">//only the mail   </span><span> </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>38         </span><span class="vars">$from</span><span> = </span><span class="vars">$matches</span><span>[1];    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>39       }    </span></li>
<li><span> </span></li>
<li class="alt"><span>40     }    </span></li>
<li><span> </span></li>
<li class="alt">
<span>41     </span><span class="keyword">if</span><span> (preg_match(</span><span class="string">"/^Date: (.*)/"</span><span>, </span><span class="vars">$lines</span><span>[</span><span class="vars">$i</span><span>], </span><span class="vars">$matches</span><span>)) {    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>42       </span><span class="vars">$date</span><span> = </span><span class="vars">$matches</span><span>[1];    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>43     }    </span></li>
<li><span> </span></li>
<li class="alt">
<span>44   } </span><span class="keyword">else</span><span> {    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>45     </span><span class="comment">// not a header, but message   </span><span> </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>46     </span><span class="vars">$message</span><span> .= </span><span class="vars">$lines</span><span>[</span><span class="vars">$i</span><span>].</span><span class="string">"\n"</span><span>;    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>47   }    </span></li>
<li><span> </span></li>
<li class="alt"><span>48      </span></li>
<li><span> </span></li>
<li class="alt">
<span>49   </span><span class="keyword">if</span><span> (trim(</span><span class="vars">$lines</span><span>[</span><span class="vars">$i</span><span>])==</span><span class="string">""</span><span>) {    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>50     </span><span class="comment">// empty line, header section has ended   </span><span> </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>51     </span><span class="vars">$splittingheaders</span><span> = false;    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>52   }    </span></li>
<li><span> </span></li>
<li class="alt"><span>53 }    </span></li>
<li><span> </span></li>
<li class="alt"><span>54      </span></li>
<li><span> </span></li>
<li class="alt">
<span>55 </span><span class="vars">$when</span><span> = </span><span class="func">date</span><span>(</span><span class="string">"Y-m-d G:i:s"</span><span>);    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>56 </span><span class="vars">$data</span><span> = </span><span class="func">explode</span><span>(</span><span class="string">'@'</span><span>,</span><span class="vars">$from</span><span>);    </span>
</li>
<li><span> </span></li>
<li class="alt">
<span>57 </span><span class="vars">$username</span><span> = </span><span class="vars">$data</span><span>[0];    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>58      </span></li>
<li><span> </span></li>
<li class="alt"><span>59 #记录到数据库    </span></li>
<li><span> </span></li>
<li class="alt">
<span>60 </span><span class="vars">$sql</span><span> = </span><span class="string">"insert into mails ( `username`, `from`, `subject`, `date`, `message`) values ( '$username', '$from', '$subject', '$when', '$message')"</span><span>;    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>61      </span></li>
<li><span> </span></li>
<li class="alt"><span>62 #测试    </span></li>
<li><span> </span></li>
<li class="alt">
<span>63 </span><span class="func">file_put_contents</span><span>(</span><span class="string">"/tmp/mail2.log"</span><span>, </span><span class="vars">$sql</span><span>);    </span>
</li>
<li><span> </span></li>
<li class="alt"><span>64 ?&gt;   </span></li>
</ol>
登录后复制




本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章

仓库:如何复兴队友
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
两个点博物馆:所有展览以及在哪里可以找到它们
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热门文章标签

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

解决方法:您的组织要求您更改 PIN 码 解决方法:您的组织要求您更改 PIN 码 Oct 04, 2023 pm 05:45 PM

解决方法:您的组织要求您更改 PIN 码

Windows 11 上调整窗口边框设置的方法:更改颜色和大小 Windows 11 上调整窗口边框设置的方法:更改颜色和大小 Sep 22, 2023 am 11:37 AM

Windows 11 上调整窗口边框设置的方法:更改颜色和大小

如何在 Windows 11 上更改标题栏颜色? 如何在 Windows 11 上更改标题栏颜色? Sep 14, 2023 pm 03:33 PM

如何在 Windows 11 上更改标题栏颜色?

Windows 11 上启用或禁用任务栏缩略图预览的方法 Windows 11 上启用或禁用任务栏缩略图预览的方法 Sep 15, 2023 pm 03:57 PM

Windows 11 上启用或禁用任务栏缩略图预览的方法

OOBELANGUAGE错误Windows 11 / 10修复中出现问题的问题 OOBELANGUAGE错误Windows 11 / 10修复中出现问题的问题 Jul 16, 2023 pm 03:29 PM

OOBELANGUAGE错误Windows 11 / 10修复中出现问题的问题

Windows 11 上的显示缩放比例调整指南 Windows 11 上的显示缩放比例调整指南 Sep 19, 2023 pm 06:45 PM

Windows 11 上的显示缩放比例调整指南

10种在 Windows 11 上调整亮度的方法 10种在 Windows 11 上调整亮度的方法 Dec 18, 2023 pm 02:21 PM

10种在 Windows 11 上调整亮度的方法

如何在Safari中关闭iPhone的隐私浏览身份验证? 如何在Safari中关闭iPhone的隐私浏览身份验证? Nov 29, 2023 pm 11:21 PM

如何在Safari中关闭iPhone的隐私浏览身份验证?

See all articles