использовать CURL в PHP, как fsockopen () для подключения к SMTP? - PullRequest
0 голосов
/ 23 февраля 2012

сначала это может показаться странным запросом, но есть причина этого хотеть ... и эта причина - асинхронная параллельная организация очереди через curl_multi_init().

, в настоящее время я использую fsockopen('mxhost.com',25,$errno, $errstr, $timeout)затем отправка SMTP-команд для массовой проверки адресов электронной почты.

для многих разных хостов, это становится очень медленным, поэтому я хотел бы открыть параллельные соединения для разных хостов, чтобы ускорить процесс.я не мог найти способ сделать это легко, даже с неблокирующим stream_socket_client(), может быть, есть способ сделать это, но я не нашел его.

с CURL, я думаю, что мне нужносделайте что-то вроде:

curl_setopt($ch, CURLOPT_URL, "telnet://mxhost.com:25");
curl_setopt($ch, CURLOPT_PROTOCOLS, CURLPROTO_TELNET);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $query."\r\n");

, однако, время ожидания истекает.Я не уверен, что это из-за того, что драйвер протокола TELNET делает внутри, или из-за ошибки в моем коде.есть ли способ просто заставить его имитировать соединение с необработанным сокетом?

спасибо!

1 Ответ

0 голосов
/ 23 февраля 2012

Вы можете использовать обычные функции потока PHP и установить их как не блокирующие.Имейте несколько открытых одновременно и stream_select (), чтобы получить те, которые готовы читать или писать.

http://ca.php.net/manual/en/function.stream-set-blocking.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...