我现在的代码是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封新邮件!"并将它们标记为自动显示.

如果有人能对这一点有所了解,我将不胜感激,因为我对IMAP非常陌生,通常都是通过编程来处理邮箱的.

推荐答案

你可以使用imap_search1imap_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');
}

Php相关问答推荐

Laravel—通过单击处理多条路由

在WooCommerce产品档案页面中显示产品销售百分比

如何优化-PHP 7.3.14+Laravel 6

以编程方式更新现有Yith WooCommerce Booking的状态

在WooCommerce产品中按类型对产品属性术语进行分类以供显示

当主页和帖子的缩略图相同时,如何减少主页和帖子的缩略图

根据WooCommerce购物车页面中的自定义 Select 添加费用

Laravel 10中的Validator类

在WooCommerce存档页面中显示可变产品的库存变化属性

除WooCommerce中的特定国家/地区外,有条件地要求填写邮政编码 checkout 字段

PHP 8.2 弃用日志(log)存储在 Laravel 10.22.0 中的哪里?

根据页面以及是否在促销,向 WooCommerce 中显示的价格添加前缀

根据小计向 WooCommerce Checkout 添加佣金

计算添加到购物车的点击次数并将其显示在 WooCommerce 管理产品列表中

使用动态地址和动态文件创建zip文件并获取zip文件链接

在 WooCommerce 我的帐户自定义部分显示未购买的产品

将 HTML 表单链接到 SQLite 数据库

自定义错误页面不适用于 Apache 和 nginx 设置的 .htaccess

Docker: unixodbc.h 没有这样的文件或目录.已安装 unixodbc-dev 时出现pecl install sqlsrv错误

基于其他数组创建多维数组 struct