aymanrb / php-mail-filters
一个库,可以帮助你创建与GMAIL类似的邮件过滤器,用于你的PHP应用程序
v1.0.0
2019-11-06 20:17 UTC
Requires
- php: >=7.2.0
- ext-imap: *
Requires (Dev)
- ddeboer/imap: ^1.5
- php-imap/php-imap: ^3.0
- phpunit/phpunit: ^8.4
- symfony/yaml: ^3.4
This package is auto-updated.
Last update: 2024-09-09 01:17:53 UTC
README
这是一个PHP包,允许你在电子邮件消息上创建方便的过滤功能(类似于Gmail过滤功能),利用PHP IMAP扩展。该库使得将IMAP连接连接到它变得很容易,你所需要做的就是实现库所需的几个适配器方法,用于过滤和操作功能。
目前适配器已实现以下IMAP库
功能
-
通过以下字段设置标准来应用电子邮件消息的过滤器
- 收件人
- 所有收件人(收件人、抄送、密送)
- 主题
- 发件人
- 正文文本
- 附件
-
根据匹配的过滤器执行以下操作之一
- 从您的邮箱中删除消息。
- 将消息移动到不同的邮件文件夹。
- 将消息复制到另一个邮件文件夹。
- 返回用户指定的变量。
- 标记消息状态(已读、未读和重要)
要求
- PHP 7.2+
- PHP IMAP扩展必须已安装和激活
- 一个PHP IMAP库来读取消息(如果您没有,建议使用上面列出的2个中的一个,或者编写您所使用的适配器)
示例
//Step 1: Build the filter(s) with Criteria and Actions $mailFilter = new Filter(); $mailFilter ->setName('Move mails that contains "RID" in its subject to Tagged folder') ->addCriterion(new SubjectCriterion('*RID*')) ->addAction(new MoveMailAction('Tagged')); $mailFilters = new MailFilter(); $mailFilters->addFilter($mailFilter); // Step 2: Read the message $mailbox = new PhpImap\Mailbox( '{imap.example.org:993/imap/ssl}INBOX', 'username@example.org', 'SecretPassword' ); $mailMessageAdapter = new MailFilters\Adapters\BarbushinImap\MessageAdapter($mailbox); $messageIds = $mailbox->searchMailbox('ALL'); $firstMessage = $mailbox->getMail(); // Step 3: Apply filters to message $mailMessageAdapter->setMessage($firstMessage) $mailFilters->applyFilters($mailMessageAdapter);
上面的示例将检查给定的电子邮件主题是否包含"RID",并将消息移动到新的邮箱目录"Tagged"。
进行中(未完成的工作)
- 向库中添加单元和功能测试