繁体   English   中英

在像fsockopen()这样的PHP中使用CURL连接到SMTP?

[英]using CURL in PHP like fsockopen() for connecting to SMTP?

起初,这似乎是一个奇怪的请求,但是有一个原因想要这个……而这个原因是通过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协议驱动程序在内部执行的操作还是代码错误。 有没有办法让它模仿原始套接字连接?

谢谢!

您可以使用常规的PHP流功能并将其设置为非阻塞。 同时打开多个文件并使用stream_select()获取可以读取或写入的文件。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM