Maison  >  Article  >  développement back-end  >  Comment lire et faire correspondre le contenu d'un e-mail à l'aide de PHP

Comment lire et faire correspondre le contenu d'un e-mail à l'aide de PHP

墨辰丷
墨辰丷original
2018-06-09 16:49:292792parcourir

Cet article présente principalement la méthode de lecture et de correspondance régulière du contenu des e-mails en PHP. Les amis intéressés peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

L'exemple de cet article décrit comment PHP traite le contenu des e-mails postfix. Les détails sont les suivants :

<?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);
?>

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère cela peut aider tout le monde à apprendre les aides.

Recommandations associées :

Connaissance de base de Socket en PHP

implémentation de php Fonction d'envoi et de réception de messages texte

Méthode et principe de cryptage réversible PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn