Heim  >  Artikel  >  Backend-Entwicklung  >  So lesen und vergleichen Sie E-Mail-Inhalte mit PHP

So lesen und vergleichen Sie E-Mail-Inhalte mit PHP

墨辰丷
墨辰丷Original
2018-06-09 16:49:292842Durchsuche

In diesem Artikel wird hauptsächlich die Methode zum Lesen und regelmäßigen Abgleichen von E-Mail-Inhalten in PHP vorgestellt. Ich hoffe, dass er für alle hilfreich ist.

Das Beispiel in diesem Artikel beschreibt, wie PHP Postfix-E-Mail-Inhalte verarbeitet. Die Details sind wie folgt:

<?php
//从输入读取到所有的邮件内容
$email = "";
$fd = fopen("php://stdin", "r");
while (!feof($fd)) {
 $email .= fread($fd, 1024);
}
fclose($fd);
//记录所有的内容,测试
file_put_contents("/tmp/mail/".time(), $email);
//处理邮件
$lines = explode("\n", $email);
// empty vars
$from = "";
$date = "";
$subject = "";
$message = "";
$splittingheaders = true;
for ($i=0; $i<count($lines); $i++) {
 if ($splittingheaders) {
  // look out for special headers
  if (preg_match("/^Subject: (.*)/", $lines[$i], $matches)) {
   $subject = $matches[1];
  }
  if (preg_match("/^From: (.*)/", $lines[$i], $matches)) {
   if(strpos($lines[$i],"<")){
    //the name exist too in from header
    $data = explode(&#39;<&#39;,$lines[$i]);
    $from = substr(trim($data[1]),0,-1);
   }else{
    //only the mail
    $from = $matches[1];
   }
  }
  if (preg_match("/^Date: (.*)/", $lines[$i], $matches)) {
   $date = $matches[1];
  }
 } else {
  // not a header, but message
  $message .= $lines[$i]."\n";
 }
 if (trim($lines[$i])=="") {
  // empty line, header section has ended
  $splittingheaders = false;
 }
}
$when = date("Y-m-d G:i:s");
$data = explode(&#39;@&#39;,$from);
$username = $data[0];
//记录到数据库
$sql = "insert into mails ( `username`, `from`, `subject`, `date`, `message`) values ( &#39;$username&#39;, &#39;$from&#39;, &#39;$subject&#39;, &#39;$when&#39;, &#39;$message&#39;)";
//测试
file_put_contents("/tmp/mail2.log", $sql);
?>

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass das so ist für die Lernhilfe aller nützlich sein.

Verwandte Empfehlungen:

Grundkenntnisse von Socket in PHP

PHP-Implementierung Funktion zum Senden und Empfangen von Textnachrichten

Methode und Prinzip der reversiblen PHP-Verschlüsselung

Das obige ist der detaillierte Inhalt vonSo lesen und vergleichen Sie E-Mail-Inhalte mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn