medeirosrafael / laravel-imap
Laravel IMAP 客户端(分支版)
1.0.2.10
2017-06-07 16:37 UTC
Requires
- php: >=5.5.9
- laravel/framework: >=5.0.0
- nesbot/carbon: ^1.22
README
安装
通过 Composer
$ composer require webklex/laravel-imap
设置
将服务提供者添加到 config/app.php
中的 providers 数组。
'providers' => [ Webklex\IMAP\Providers\LaravelServiceProvider::class, ];
如果您打算使用单个账户,您可能需要将以下内容添加到您的 .env 文件中。
IMAP_HOST=somehost.com
IMAP_PORT=993
IMAP_ENCRYPTION=ssl
IMAP_VALIDATE_CERT=true
IMAP_USERNAME=root@example.com
IMAP_PASSWORD=secret
以下加密方法被支持
false - Disable encryption
ssl - Use SSL
tls - Use TLS
发布
您可以一次性发布所有内容
php artisan vendor:publish --provider="Webklex\IMAP\Providers\LaravelServiceProvider"
通过其 Facade \Webklex\IMAP\Facades\Client
访问 IMAP 客户端。因此,您可能需要在 config/app.php
文件中的 aliases 数组中添加一个别名。
'aliases' => [ 'Client' => Webklex\IMAP\Facades\Client::class ];
用法
这个库旨在更轻松地处理原生 PHP IMAP 函数,并能够将此软件包集成到您当前的 Laravel 安装中。
以下是一个基本示例,它将输出所有 imap 文件夹中的所有邮件,并将每条消息移动到 INBOX.read。请注意,这不应该在实际环境中测试,但它可以给人一个关于事物如何工作的印象。
use Webklex\IMAP\Client; $oClient = new Client([ 'host' => 'somehost.com', 'port' => 993, 'encryption' => 'ssl', 'validate_cert' => true, 'username' => 'username', 'password' => 'password', ]); //Connect to the IMAP Server $oClient->connect(); //Get all Mailboxes $aMailboxes = $oClient->getFolders(); //Loop through every Mailbox /** @var \Webklex\IMAP\Folder $oMailbox */ foreach($aMailboxes as $oMailbox){ //Get all Messages of the current Mailbox /** @var \Webklex\IMAP\Message $oMessage */ foreach($oMailbox->getMessages() as $oMessage){ echo $oMessage->subject.'<br />'; echo 'Attachments: '.$oMessage->getAttachments()->count().'<br />'; echo $oMessage->getHTMLBody(true); //Move the current Message to 'INBOX.read' if($oMessage->moveToFolder('INBOX.read') == true){ echo 'Message has ben moved'; }else{ echo 'Message could not be moved'; } } }
如果您使用 Facade \Webklex\IMAP\Facades\Client
,请先选择一个账户
use Webklex\IMAP\Facades\Client; $oClient = Webklex\IMAP\Facades\Client::account('default'); $oClient->connect();
您可以在 config/imap.php
文件中定义您的账户
'accounts' => [
'default' => [
'host' => env('IMAP_HOST', 'localhost'),
'port' => env('IMAP_PORT', 993),
'encryption' => env('IMAP_ENCRYPTION', 'ssl'),
'validate_cert' => env('IMAP_VALIDATE_CERT', true),
'username' => env('IMAP_USERNAME', 'root@example.com'),
'password' => env('IMAP_PASSWORD', ''),
],
'gmail' => [.. ]
]
文档
\Webklex\IMAP\Client
\Webklex\IMAP\Message
\Webklex\IMAP\Folder
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
测试
$ composer test
安全
如果您发现任何安全相关的问题,请发送电子邮件到 github@webklex.com,而不是使用问题跟踪器。
致谢
- Webklex
- 所有贡献者
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件