使用 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_search
1 and imap_setflag_full
2
的组合
$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');
}
所以我当前的代码是 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_search
1 and imap_setflag_full
2
$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');
}