benpoulson / php-imap
管理邮箱,在PHP中过滤/获取/删除电子邮件(支持IMAP/POP3/NNTP)
3.0.28
2019-07-23 09:25 UTC
Requires
- php: >=5.6
- ext-iconv: *
- ext-imap: *
- ext-mbstring: *
Requires (Dev)
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^3.4
- dev-master
- 3.0.28
- 3.0.27
- 3.0.26
- 3.0.25
- 3.0.24
- 3.0.23
- 3.0.22
- 3.0.21
- 3.0.20
- 3.0.19
- 3.0.18
- 3.0.17
- 3.0.16
- 3.0.15
- 3.0.14
- 3.0.13
- 3.0.12
- 3.0.11
- 3.0.10
- 3.0.9
- 3.0.8
- 3.0.7
- 3.0.6
- 3.0.5
- 3.0.4
- 3.0.3
- 3.0.2
- 3.0.1
- 3.0.0
- 2.2.5
- 2.2.4
- 2.2.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.9
- 2.0.8
- 2.0.7
- 2.0.6
- 2.0.5
- 2.0.4
- 2.0.3
- 2.0.2
- 2.0.1
- 2.0
- 1.1
- 1.0
- dev-develop
This package is auto-updated.
Last update: 2024-09-14 16:55:42 UTC
README
最初于2012年12月发布,PHP IMAP 邮箱是一个强大且开源的库,通过 PHP IMAP 扩展使用 POP3、IMAP 和 NNTP 连接到邮箱。此库允许您从您的邮件服务器获取电子邮件。扩展功能或创建强大的网络应用程序来处理您的传入电子邮件。
特性
- 通过 PHP IMAP 扩展 使用 POP3/IMAP/NNTP 连接到邮箱
- 获取带附件和内嵌图像的电子邮件
- 按自定义标准过滤或排序电子邮件
- 标记电子邮件为已读/未读
- 删除电子邮件
- 管理邮箱文件夹
需求
- PHP 5.6, 7.0, 7.1, 7.2 或 7.3
- PHP
imap
扩展必须存在;确保在您的 php.ini 中此行是激活的:extension=php_imap.dll
- PHP
mbstring
扩展必须存在;确保在您的 php.ini 中此行是激活的:extension=php_mbstring.dll
- PHP
iconv
扩展必须存在,如果mbstring
不可用;确保在您的 php.ini 中此行是激活的:extension=php_iconv.dll
使用 Composer 安装
安装 最新可用版本
$ composer require php-imap/php-imap
从 master
安装最新可用且稳定的源代码,这可能尚未发布/标记
$ composer require php-imap/php-imap
从 develop
安装最新可用但可能不稳定的源代码,这可能尚未经过适当的测试
$ composer require php-imap/php-imap:dev-develop
PHPUnit 测试
在您运行 PHPUnit 测试之前,您可能需要运行 composer install
来安装所有(开发)依赖项。
您可以通过以下命令运行所有 PHPUnit 测试(在已安装的 php-imap
目录内):php vendor/bin/phpunit --testdox
与框架集成
- Symfony - https://github.com/secit-pl/imap-bundle
入门示例
下面,您将找到如何使用此库的示例代码。有关更多信息和其他示例,您可以查看 wiki。
// Create PhpImap\Mailbox instance for all further actions $mailbox = new PhpImap\Mailbox( '{imap.gmail.com:993/imap/ssl}INBOX', // IMAP server and mailbox folder 'some@gmail.com', // Username for the before configured mailbox '*********', // Password for the before configured username __DIR__, // Directory, where attachments will be saved (optional) 'UTF-8' // Server encoding (optional) ); try { // Get all emails (messages) // PHP.net imap_search criteria: https://php.ac.cn/manual/en/function.imap-search.php $mailsIds = $mailbox->searchMailbox('ALL'); } catch(PhpImap\Exceptions\ConnectionException $ex) { echo "IMAP connection failed: " . $ex; die(); } // If $mailsIds is empty, no emails could be found if(!$mailsIds) { die('Mailbox is empty'); } // Get the first message // If '__DIR__' was defined in the first line, it will automatically // save all attachments to the specified directory $mail = $mailbox->getMail($mailsIds[0]); // Show, if $mail has one or more attachments echo "\nMail has attachments? "; if($mail->hasAttachments()) { echo "Yes\n"; } else { echo "No\n"; } // Print all information of $mail print_r($mail); // Print all attachements of $mail echo "\n\nAttachments:\n"; print_r($mail->getAttachments());
方法 imap() 允许在实例的上下文中调用任何 imap 函数
// Call imap_check(); // https://php.ac.cn/manual/en/function.imap-check.php $info = $mailbox->imap('check'); // // Show current time for the mailbox $currentServerTime = isset($info->Date) && $info->Date ? date('Y-m-d H:i:s', strtotime($info->Date)) : 'Unknown'; echo $currentServerTime;
某些请求需要大量时间和资源
// If you don't need to grab attachments you can significantly increase performance of your application $mailbox->setAttachmentsIgnore(true); // get the list of folders/mailboxes $folders = $mailbox->getMailboxes('*'); // loop through mailboxs foreach($folders as $folder) { // switch to particular mailbox $mailbox->switchMailbox($folder['fullpath']); // search in particular mailbox $mails_ids[$folder['fullpath']] = $mailbox->searchMailbox('SINCE "1 Jan 2018" BEFORE "28 Jan 2018"'); } print_r($mails_ids);
推荐
- Google Chrome 扩展 PHP Console
- Google Chrome 扩展 JavaScript 错误通知器