bigpaulie/imap
此包已被弃用且不再维护。未建议替代包。
PHP的IMAP相关电子邮件处理函数的包装类。
dev-master
2018-07-05 06:56 UTC
Requires
- php: ^7.0
- ext-imap: *
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ^6.5
This package is auto-updated.
Last update: 2022-02-01 13:13:31 UTC
README
此库是对Jeff Geerling的项目的改进,针对目前我的需求进行了定制。
请注意,这仍然是一个正在进行中的项目,所以将来可能会发生重大变化。
安装
您可以通过运行以下命令使用composer安装此库,或者您可以克隆存储库。
composer require bigpaulie/imap
用法
在此库的上下文中,邮箱指的是您的电子邮件账户的目录。
通过创建一个新的Imap对象并使用所需参数连接到IMAP账户
$host = 'imap.example.com'; $user = 'johndoe'; $pass = '12345'; $port = 993; $ssl = true; $folder = 'INBOX'; $server = new Imap($host, $user, $pass, $port, $ssl, $folder);
获取邮箱对象
/** @var Mailbox $mailbox */ $mailbox = $server->getMailbox();
如果您想访问另一个目录
/** @var Mailbox $mailbox */ $mailbox = $server->getMailbox('SPAM');
邮箱信息
/** @var array $info */ $info = $mailbox->getInfo();
获取特定邮箱中的邮件列表
/** @var Message[] $messages */ $messages = $mailbox->getMessages();
然后您可以通过邮件数组进行迭代
/** @var Message $message */ foreach ($messages as $message) { $subject = $message->getSubject(); $messageBody = $message->getBody(); }
创建搜索条件
如果您只想获取某些邮件,则可以。
仅未删除的邮件
/** @var Search $criteria */ $criteria = new Search(); $criteria->setCriteria(Search::UNDELETED); /** @var Message[] $messages */ $messages = $mailbox->getMessages($criteria);
您可以添加多个搜索条件,例如
/** @var Search $criteria */ $criteria = new Search(); $criteria->setCriteria(Search::UNDELETED); $criteria->setCriteria(Search::FROM, "John Doe"); $criteria->setCriteria(Search::KEYWORD, "candy"); /** @var Message[] $messages */ $messages = $mailbox->getMessages($criteria);
搜索条件可以链接在一起
/** @var Search $criteria */ $criteria = new Search(); $criteria->setCriteria(Search::UNDELETED) ->setCriteria(Search::FROM, "John Doe") ->setCriteria(Search::KEYWORD, "candy"); /** @var Message[] $messages */ $messages = $mailbox->getMessages($criteria);
移动邮件
您可以将邮件从一个邮箱移动到另一个邮箱,非常简单
if ($mailbox->moveMessage($message, 'SPAM')) { echo "Message moved successfuly"; }
复制邮件
复制邮件与移动邮件一样简单
if ($mailbox->copyMessage($message, 'SPAM')) { echo "Message moved successfuly"; }
删除邮件
$mailbox->deleteMessage($message);
从服务器断开连接
$server->disconnect();
贡献
如果您想做出贡献并改进库,或者您发现了一个错误,我们非常欢迎您这么做。
对于贡献者,只需分支、编码并提交拉取请求。
请维护编码风格和测试模式。