ホームページ php教程 php手册 PHP は後置メールコンテンツを処理します

PHP は後置メールコンテンツを処理します

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

<ol class="dp-c"><li class="alt"><span><span>01 &lt;?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">&quot;&quot;</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">&quot;php://stdin&quot;</span><span>, </span><span class="string">&quot;r&quot;</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">&quot;/tmp/mail/&quot;</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">&quot;\n&quot;</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">&quot;&quot;</span><span>;    </span></li><li><span> </span></li><li class="alt"><span>19 </span><span class="vars">$date</span><span> = </span><span class="string">&quot;&quot;</span><span>;    </span></li><li><span> </span></li><li class="alt"><span>20 </span><span class="vars">$subject</span><span> = </span><span class="string">&quot;&quot;</span><span>;    </span></li><li><span> </span></li><li class="alt"><span>21 </span><span class="vars">$message</span><span> = </span><span class="string">&quot;&quot;</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>&lt;</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">&quot;/^Subject: (.*)/&quot;</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">&quot;/^From: (.*)/&quot;</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">&quot;&lt;&quot;</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">'&lt;'</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">&quot;/^Date: (.*)/&quot;</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">&quot;\n&quot;</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">&quot;&quot;</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">&quot;Y-m-d G:i:s&quot;</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">&quot;insert into mails ( `username`, `from`, `subject`, `date`, `message`) values ( '$username', '$from', '$subject', '$when', '$message')&quot;</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">&quot;/tmp/mail2.log&quot;</span><span>, </span><span class="vars">$sql</span><span>);    </span></li><li><span> </span></li><li class="alt"><span>64 ?&gt;   </span></span></li></ol>
ログイン後にコピー




このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

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 でタスクバーのサムネイル プレビューを有効または無効にする方法

Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Windows 11/10修復におけるOOBELANGUAGEエラーの問題 Jul 16, 2023 pm 03:29 PM

Windows 11/10修復におけるOOBELANGUAGEエラーの問題

Windows 11 でのディスプレイ スケーリング ガイド Windows 11 でのディスプレイ スケーリング ガイド Sep 19, 2023 pm 06:45 PM

Windows 11 でのディスプレイ スケーリング ガイド

Windows 11で明るさを調整する10の方法 Windows 11で明るさを調整する10の方法 Dec 18, 2023 pm 02:21 PM

Windows 11で明るさを調整する10の方法

iPhoneのSafariでプライベートブラウジング認証をオフにする方法は? iPhoneのSafariでプライベートブラウジング認証をオフにする方法は? Nov 29, 2023 pm 11:21 PM

iPhoneのSafariでプライベートブラウジング認証をオフにする方法は?

See all articles