0

我收到了包含车辆位置的电子邮件,我想在我的数据库中记录位置。我想出了如何获取电子邮件并找到部分内容。现在我需要弄清楚如何仅搜索尚未阅读的电子邮件的内容,并在完成后将它们标记为已读。

$hostname = '{imap.gmail.com:993/imap/ssl}INBOX';
$username = 'myusername';
$password = 'mypassword';

$inbox = imap_open($hostname,$username,$password) or die('Cannot connect to Gmail: ' .     imap_last_error());
$emails = imap_search($inbox,'FROM "onlyoneemail@email.com"');

if($emails) {
  $output = '';
  rsort($emails);
  foreach($emails as $email_number) {
    $overview = imap_fetch_overview($inbox,$email_number,0);
    $message = imap_fetchbody($inbox,$email_number,1);

    if (preg_match('/\bAddress\s*:\s*(.+?)\s*$/mi', $message, $match)){
        echo $match[1] . "<br>";
    }
  }
  echo $output;
} 

imap_close($inbox);
4

1 回答 1

3

您可以像这样将关键字添加UNSEEN到搜索条件中imap_search()

$emails = imap_search($inbox, 'FROM "onlyoneemail@email.com" UNSEEN');
于 2013-01-11T22:10:14.683 回答