如何使用php curl发送SMTP请求和读取响应?
我正在尝试向安装在如何使用php curl发送SMTP请求和读取响应?,php,email,curl,smtp,freebsd,Php,Email,Curl,Smtp,Freebsd,我正在尝试向安装在freebsd中的smtp服务器发送smtp请求,并读取成功或失败响应? 这是我的代码: $url = '192.168.1.227:25/'; $user = 'admin'; $pass = '123'; $params = array( 'User' => $user, 'passwor' => $pass, 'to' => 'example1@exam
freebsd
中的smtp
服务器发送smtp
请求,并读取成功或失败响应?
这是我的代码:
$url = '192.168.1.227:25/';
$user = 'admin';
$pass = '123';
$params = array(
'User' => $user,
'passwor' => $pass,
'to' => 'example1@example.com',
'subject' => 'test',
'html' => 'body',
'text' => 'text',
'from' => 'example2@example.com',
);
$session = curl_init($url);
curl_setopt ($session, CURLOPT_POST, true);
curl_setopt ($session, CURLOPT_POSTFIELDS, $params);
curl_setopt($session, CURLOPT_HEADER, 1);
curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($session);
$info = curl_getinfo($session);
curl_close($session);
echo $response;
print_r($info);
cURL不是用于此的合适工具。虽然它确实支持,但它通常不是为更高级的用例而设计的 cURL是为HTTP而设计的,在HTTP中,通常有一个带有一组参数(HTTP请求头)的请求和一个响应。ª 然而,SMTP通信更像是“乒乓”。要实现SMTP客户端,您必须处理原始TCP套接字:在套接字上写入SMTP命令、读取/处理响应、写入下一个命令,等等 而且,SMTP,正如它目前实现的那样,在服务器和客户端之间有很多奇怪的方面。例如,基于PHP/cURL的方法将无法支持greylisting,除非您管理自己的临时拒绝邮件队列 除非你有很好的理由这样做(而且时间很长,还有很高的挫折容忍度),否则你应该使用像Swiftmailer这样的客户端库和一个真正的MTA来发送邮件 另一方面,如果您只是想玩到邮件服务器的原始连接,请从命令行使用类似于
netcat
的工具,并通过
如果您离开,请将“保持活力”等放在一旁片刻