jhonn921007/imap

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

通过IMAP接收和发送电子邮件

维护者

详细信息

github.com/daniel0707/imap

源代码

安装: 220

依赖: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 239

0.4.3 2014-12-13 08:15 UTC

This package is not auto-updated.

Last update: 2022-02-01 12:42:00 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version

一个PHP 5.3+库,用于通过IMAP读取和处理电子邮件。

安装

推荐通过Composer安装IMAP库

$ composer require jhonn921007/imap:@stable

使用方法

连接和认证

use Ddeboer\Imap\Server;

$server = new Server('imap.gmail.com');

// $connection is instance of \Ddeboer\Imap\Connection
$connection = $server->authenticate('my_username', 'my_password');

邮箱

从邮件服务器检索邮箱(也称为邮件文件夹)并遍历它们

$mailboxes = $connection->getMailboxes();

foreach ($mailboxes as $mailbox) {
    // $mailbox is instance of \Ddeboer\Imap\Mailbox
    printf('Mailbox %s has %s messages', $mailbox->getName(), $mailbox->count());
}

删除邮箱

$mailbox->delete();

消息

从邮箱中检索消息(电子邮件)并遍历它们

$messages = $mailbox->getMessages();

foreach ($messages as $message) {
    // $message is instance of \Ddeboer\Imap\Message
}

获取消息编号和唯一的 消息ID,格式为 <...>

$message->getNumber();
$message->getId();

获取其他消息属性

$message->getSubject();
$message->getFrom();
$message->getTo();
$message->getDate();
$message->isAnswered();
$message->isDeleted();
$message->isDraft();
$message->isSeen();

获取消息头作为一个 \Ddeboer\Imap\Message\Headers 对象

$message->getHeaders();

获取消息体作为HTML或纯文本

$message->getBodyHtml();
$message->getBodyText();

读取消息体会将消息标记为已读。如果您想保持消息未读状态

$message->keepUnseen()->getBodyHtml();

将消息移动到另一个邮箱

$mailbox = $connection->getMailbox('another-mailbox');
$message->move($mailbox);

删除消息

$mailbox->getMessage(1)->delete();
$mailbox->getMessage(2)->delete();
$mailbox->expunge();

消息附件

获取消息附件(包括内联和附加)并遍历它们

$attachments = $message->getAttachments();

foreach ($attachments as $attachment) {
    // $attachment is instance of \Ddeboer\Imap\Message\Attachment
}

将消息附件下载到本地文件

// getDecodedContent() decodes the attachments contents automatically:
\file_put_contents(
    '/my/local/dir/' . $attachment->getFilename(),
    $attachment->getDecodedContent()
);

运行测试

此库在Travis CI上进行了功能测试,针对的是Gmail IMAP服务器。

如果您有您自己的Gmail(测试)账户,您可以在本地运行测试

$ composer install --dev
$ export EMAIL_USERNAME="your_gmail_username"
$ export EMAIL_PASSWORD="your_gmail_password"
$ vendor/bin/phpunit