首页 > php教程 > php手册 > 正文

PHP处理postfix的邮件内容

php中文网
发布: 2016-06-21 08:54:55
原创
1012人浏览过

<ol class="dp-c"><li class="alt"><span><span>01 <?php    </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><span class="func">count</span><span>(</span><span class="vars">$lines</span><span>); </span><span class="vars">$i</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><span class="vars">$lines</span><span>[</span><span class="vars">$i</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 ?>   </span></li></ol>
登录后复制




PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号