aymanrb/php-mail-filters

一个库,可以帮助你创建与GMAIL类似的邮件过滤器,用于你的PHP应用程序

v1.0.0 2019-11-06 20:17 UTC

This package is auto-updated.

Last update: 2024-09-09 01:17:53 UTC


README

Build Status Latest Stable Version Latest Unstable Version License

这是一个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"。

进行中(未完成的工作)
  • 向库中添加单元和功能测试