topcu/laravelimap

此包最新版本(v1.2)没有可用的许可信息。

Laravel对php-imap的包装

v1.2 2017-07-24 13:34 UTC

This package is not auto-updated.

Last update: 2024-09-29 02:03:25 UTC


README

安装

$ composer require php-imap/php-imap

将以下行添加到config/app.php

    'providers' => [
    	...
	Topcu\Dumber\DumberServiceProvider::class,
	...
    ],
    'aliases' => [ 
    	...
	'Imap' => \Topcu\LaravelImap\Facades\Imap::class,
	...
    ],

配置

如果您想使用单个连接,请将imap添加到config/services.php并在.env文件中定义您的凭据

    'imap' => [
        "imap_path" => env("IMAP_SERVER_PATH"), // "{imap.gmail.com:993/imap/ssl}INBOX", 
        "login"     => env("IMAP_SERVER_LOGIN"), // "mail@example.com", 
        "password"  => env("IMAP_SERVER_PASSWORD")
    ]

否则,您可以在任何时候使用配置参数调用Imap::connection()

    Imap::connection([
         "imap_path" => "{imap.gmail.com:993/imap/ssl}INBOX", 
         "login"     => "mail@example.com", 
         "password"  => "somepassword",
     ]);

用法示例

使用门面

    $mail_ids = Imap::searchMailbox("UNSEEN");
    $mail = Imap::getMail($mail_ids[0]);

使用IoC

use Topcu\LaravelImap\Mailbox;

class Foo
{
    //...
    public function bar(Mailbox $imap)
    {
        $mail_ids = $imap->searchMailbox("UNSEEN");
        $mail = $imap->getMail($mail_ids[0]);
    }
    //...
}

动态设置连接参数

    $mail_ids = Imap::connection($imap_config)->searchMailbox("UNSEEN");
    $mail = Imap::getMail($mail_ids[0]);