我有电子邮件进入车辆位置,我想在我的数据库中记录位置。我想出了如何获取电子邮件和查找部分内容。现在我需要弄清楚如何搜索尚未阅读电子邮件的内容,并在完成后将其标记为已读。
$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);
答案 0 :(得分:3)
您只需将关键字UNSEEN
添加到imap_search()
中的搜索条件,就像这样:
$emails = imap_search($inbox, 'FROM "onlyoneemail@email.com" UNSEEN');