Laravel Imap connect() 慢 |重用?
Laravel Imap connect() slow | reuse?
我正在使用 laravel-imap 连接到我的电子邮件服务器并获取所有邮箱和消息。
我注意到 connect() 方法很慢,需要 4-5 秒。:
$start = microtime(true);
$oClient = new Client([
'host' => env('MAIL_HOST_IN'),
'port' => env('MAIL_PORT_IN'),
'encryption' => env('MAIL_ENCRYPTION_IN'),
'validate_cert' => true,
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'protocol' => 'imap'
]);
// Connect to the IMAP Server
$oClient->connect();
\Log::info('Connect: ' . strval(microtime(true) - $start));
就是这样,没有额外的代码。我还使用 getFolders()
并循环遍历它们以获取消息。
我count/get看不到消息,操作比较多,但是都很快。
我问这个,因为如果我通过网站登录我的邮箱,性能会好很多 1-2 秒。操作是一样的,我得到邮箱和看不见的消息。 那么为什么通过脚本很慢?
万一就是这样而我无法改变它,有什么可能的解决方案?我现在唯一的想法是在多个函数中重用连接,所以至少我只连接一次。
感谢@大家发表评论。
我现在可以确认 code/package 没有问题。
似乎是我本地机器上的某些东西导致连接时间变慢。
我不知道到底是什么,可能是防火墙坏了。
我将代码上传到我的服务器。性能好多了,马上就连上了。
我正在使用 laravel-imap 连接到我的电子邮件服务器并获取所有邮箱和消息。
我注意到 connect() 方法很慢,需要 4-5 秒。:
$start = microtime(true);
$oClient = new Client([
'host' => env('MAIL_HOST_IN'),
'port' => env('MAIL_PORT_IN'),
'encryption' => env('MAIL_ENCRYPTION_IN'),
'validate_cert' => true,
'username' => env('MAIL_USERNAME'),
'password' => env('MAIL_PASSWORD'),
'protocol' => 'imap'
]);
// Connect to the IMAP Server
$oClient->connect();
\Log::info('Connect: ' . strval(microtime(true) - $start));
就是这样,没有额外的代码。我还使用 getFolders()
并循环遍历它们以获取消息。
我count/get看不到消息,操作比较多,但是都很快。
我问这个,因为如果我通过网站登录我的邮箱,性能会好很多 1-2 秒。操作是一样的,我得到邮箱和看不见的消息。 那么为什么通过脚本很慢?
万一就是这样而我无法改变它,有什么可能的解决方案?我现在唯一的想法是在多个函数中重用连接,所以至少我只连接一次。
感谢@大家发表评论。
我现在可以确认 code/package 没有问题。
似乎是我本地机器上的某些东西导致连接时间变慢。 我不知道到底是什么,可能是防火墙坏了。
我将代码上传到我的服务器。性能好多了,马上就连上了。