gpt4 book ai didi

php - 为什么在 220 2.0.0 Start TLS 之后不显示任何内容?

转载 作者:太空宇宙 更新时间:2023-11-03 13:54:38 25 4
gpt4 key购买 nike

代码如下:

$fp = stream_socket_client("smtp.mail.yahoo.com:587", $errno, $errstr, 10);
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
fwrite($fp, "EHLO my.hostname\r\n");
echo fgets($fp, 1024).'<br>';
echo fgets($fp, 1024).'<br>';
echo fgets($fp, 1024).'<br>';
echo fgets($fp, 1024).'<br>';
echo fgets($fp, 1024).'<br>';
echo fgets($fp, 1024).'<br>';

fwrite($fp, "STARTTLS\r\n");
fwrite($fp, "EHLO my.hostname\r\n");

echo fgets($fp, 1024).'<br>';
echo fgets($fp, 101024).'<br>';
}

问题是,当我在浏览器中运行它时,我只得到这些:

220 smtp.mail.yahoo.com ESMTP ready   
250-smtp.mail.yahoo.com
250-PIPELINING
250-SIZE 41697280
250-8 BITMIME
250 STARTTLS
220 2.0.0 Start TLS

那么为什么“220 2.0.0 Start TLS”之后的行没有显示呢?代码有问题还是什么?

还有一件事,而不是 fwrite($fp, "EHLO my.hostname\r\n"); 在最后一行,我使用了其他命令,比如 QUIT 但结果相同!!

最佳答案

发送 STARTTLS 后,通信进入加密模式,这就是为什么没有进一步的未加密命令起作用的原因。您可能不想陷入加密消息的困境 - 如果您只想发送邮件,可以使用 PHPMailer

https://github.com/Synchro/PHPMailer

关于php - 为什么在 220 2.0.0 Start TLS 之后不显示任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23314011/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com