使用 PHP 检查 gmail 收件箱中的新电子邮件

Check new email in gmail inbox using PHP

所以我当前的代码是 PHP:

$mailbox = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', 'example@gmail.com', 'password') or die('Cannot connect to Gmail: ' . imap_last_error());

此代码允许 PHP 使用 IMAP 查看我的电子邮件收件箱并且工作正常。

现在我的问题是,如何让它检查我收件箱中的所有 new 封电子邮件并输出“n New Emails!”并将它们中的每一个标记为自动可见。

如果有人能对此有所说明,我将不胜感激,因为我对 IMAP 非常陌生,并且通常以编程方式处理电子邮件。

您可以使用 imap_search1 and imap_setflag_full2

的组合
$mailbox = imap_open('{imap.gmail.com:993/imap/ssl}INBOX', 'example@gmail.com', 'password');

// This gives an array of message IDs for all messages that are UNSEEN
$unseenMessages = imap_search($mailbox, 'UNSEEN');

// Keep in mind that imap_search returns false, if it doesn't find anything
$unseenCount = !$unseenMessages ? 0 : count($unseenMessages);
echo "$unseenCount New Emails!\n";

if ($unseenMessages) {
    // The second parameter of imap_setflag_full function is a comma separated string of message IDs
    // It can also be a range eg 1:5, which would be the same as 1,2,3,4,5
    imap_setflag_full($mailbox, implode(',', $unseenMessages), '\Seen');
}