bigpaulie/imap

此包已被弃用且不再维护。未建议替代包。

PHP的IMAP相关电子邮件处理函数的包装类。

维护者

详细信息

github.com/bigpaulie/Imap

源代码

dev-master 2018-07-05 06:56 UTC

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();

贡献

如果您想做出贡献并改进库,或者您发现了一个错误,我们非常欢迎您这么做。

对于贡献者,只需分支、编码并提交拉取请求。

请维护编码风格和测试模式。