meow7 / phpimap
基于webklex/php-imap的PHP IMAP客户端
v1.0.0
2024-09-22 10:40 UTC
Requires
- php: ^8.0.2
- ext-fileinfo: *
- ext-iconv: *
- ext-json: *
- ext-libxml: *
- ext-mbstring: *
- ext-openssl: *
- ext-zip: *
- illuminate/pagination: >=5.0.0
- nesbot/carbon: ^2.62.1|^3.2.4
- symfony/http-foundation: >=2.8.0
Requires (Dev)
- phpunit/phpunit: ^9.5.10
Suggests
- symfony/mime: Recomended for better extension support
- symfony/var-dumper: Usefull tool for debugging
README
PHP-IMAP是一个对常见IMAP通信的包装器,无需安装/启用php-imap模块。该协议完全集成,因此支持IMAP IDLE操作以及“新”的OAuth身份验证过程。您可以通过启用php-imap
模块来处理边缘情况,提高消息解码质量,如果您想使用如pop3之类的旧协议,则必须启用。
官方文档:php-imap.com
Laravel包装器:webklex/laravel-imap
Discord:[discord.gg/rd4cN9h6][link-discord]
目录
文档
- 旧版(< v2.0.0):旧版文档
- 核心文档:php-imap.com
兼容性
基本使用示例
这是一个基本示例,将输出所有imap文件夹内的所有邮件,并将每条消息移动到INBOX.read。请注意,这不应该在实际生活中测试,仅用于展示如何工作。
use Meow7\Phpimap\ClientManager; require_once "vendor/autoload.php"; $cm = new ClientManager('path/to/config/imap.php'); /** @var \Webklex\PHPIMAP\Client $client */ $client = $cm->account('account_identifier'); //Connect to the IMAP Server $client->connect(); //Get all Mailboxes /** @var \Webklex\PHPIMAP\Support\FolderCollection $folders */ $folders = $client->getFolders(); //Loop through every Mailbox /** @var \Webklex\PHPIMAP\Folder $folder */ foreach($folders as $folder){ //Get all Messages of the current Mailbox $folder /** @var \Webklex\PHPIMAP\Support\MessageCollection $messages */ $messages = $folder->messages()->all()->get(); /** @var \Webklex\PHPIMAP\Message $message */ foreach($messages as $message){ echo $message->getSubject().'<br />'; echo 'Attachments: '.$message->getAttachments()->count().'<br />'; echo $message->getHTMLBody(); //Move the current Message to 'INBOX.read' if($message->move('INBOX.read') == true){ echo 'Message has been moved'; }else{ echo 'Message could not be moved'; } } }
已知问题
许可证
MIT许可证(MIT)。有关更多信息,请参阅[许可证文件][link-license]。