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('<',$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('@',$from); $username = $data[0]; //记录到数据库 $sql = "insert into mails ( `username`, `from`, `subject`, `date`, `message`) values ( '$username', '$from', '$subject', '$when', '$message')"; //测试 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!