Php 无法通过telnet连接到smtp服务器错误504

Php 无法通过telnet连接到smtp服务器错误504,php,smtp,phpmailer,telnet,smtp-auth,Php,Smtp,Phpmailer,Telnet,Smtp Auth,尝试通过telnet登录电子邮件服务器时出现504错误。我试过25号端口和587号端口。(使用*s和xs屏蔽域和IP) 不过我可以用phpmailer做得很好!: <?php $mail = new PHPMailer(true); $mail->IsSMTP(); $mail->Host = $host; $mail->Port = 587; $mail->SMTPDe

尝试通过telnet登录电子邮件服务器时出现504错误。我试过25号端口和587号端口。(使用*s和xs屏蔽域和IP)

不过我可以用phpmailer做得很好!:

        <?php
        $mail = new PHPMailer(true);
        $mail->IsSMTP();
        $mail->Host = $host;
        $mail->Port = 587;
        $mail->SMTPDebug = 2;
        $mail->SMTPSecure = "tls";
        $mail->SMTPAuth = true;
        $mail->Username = $user;
        $mail->Password = $password;
        $mail->SetFrom($user, "chiliNUT");
        $mail->Subject = $subject;
        $mail->MsgHTML($content);
        $mail->send();

我如何在命令行上运行此功能?

这是因为大多数合理的邮件服务器不允许未加密的身份验证-请注意,您从服务器收到的功能列表不包括身份验证-您需要先调用STARTTLS,PHPMailer会自动执行此操作。使用telnet手动执行此操作并不容易-请使用openssl的_client命令来更好地执行此操作。PHPMailer故障排除指南中有一个示例,类似于:

openssl s_client -starttls smtp -connect smtp.outlook.office365.com:587
public function Authenticate($username, $password) {
    // Start authentication
    fputs($this->smtp_conn,"AUTH LOGIN" . $this->CRLF);
    //...
openssl s_client -starttls smtp -connect smtp.outlook.office365.com:587