php mailer SMTP错误:无法连接到SMTP主机

时间:2018-11-18 13:48:00

标签: php smtp phpmailer smtpclient

我已经将我的网站托管在Plesk Hosting上,并且正在提交联系表格。 使用composer安装了PHP Mailer。 第一 我尝试使用Gmail SMPT服务器发送电子邮件 工作正常 第二 我尝试使用网络托管SMTP服务器发送电子邮件 它对我不起作用

 let obj={[pn="Xyz"]:999}
 console.log(obj);

我使用SMTPER测试了SMPT服务器。它可以使用相同的凭据发送电子邮件。

我不知道问题出在哪里。

除了phpmailer之外,还有其他库吗?

3 个答案:

答案 0 :(得分:0)

$mail->SMTPAuth = true;

我想就这么简单。

您说您已经在SMTPer上测试了凭据,

我确定您已选中“使用身份验证”复选框。

也许您以为可以将其设置为错误,因为您没有使用SSL,

但这与用户身份验证有关,与加密通信无关。

答案 1 :(得分:0)

这是我用于gmail的代码示例。使用webhosting SMTP对其进行了测试,并且运行良好。

`           $mailMsg = ADD_MAIL_MESSAGE_HERE;
            $mailto = ADD_TO_ADDRESS_HERE;
            $mail = new PHPMailer\PHPMailer\PHPMailer();
            $mail->IsSmtp();
            $mail->SMTPDebug = 0;
            $mail->SMTPAuth = true;
            $mail->SMTPSecure = 'ssl';
            $mail->Host = 'smtp.gmail.com';
            $mail->Port = 465;
            $mail->IsHTML(true);
            $mail->CharSet = 'UTF-8';
            $mail->Username = ADD_USERNAME_HERE;
            $mail->Password = ADD_PASSWORD_HERE;
            $mail->SetFrom(ADD_FROM_ADDRESS_HERE);
            //-------------------------------------------
            $mail->Subject = ADD_MAIL_SUBJECT_HERE;
            $mail->Body = $mailMsg;
            $mail->AddAddress($mailto);
            $mail->SMTPOptions = array(
                'ssl' => array(
                    'verify_peer' => false,
                    'verify_peer_name' => false,
                    'allow_self_signed' => true
                )
            );
`

答案 2 :(得分:0)

您是否正在使用Plesk的共享主机?如果是,那么这很可能是端口阻塞的问题(确切原因是您只会在邮件日志中看到)。查看您的代码,可以看到在进行本地SMTP测试时,您使用的端口是25,而在Gmail中是465。

默认情况下,大多数共享主机提供商在端口25上阻止传出SMTP连接。这样做是为了保护网络和基础结构免受垃圾邮件的侵害。如果是这种情况,则您需要与他们的支持人员联系以解除阻止端口或使用电子邮件发送的某些无端口模式。意味着无需通过SMTP进行连接,而是通过HTTP API进行连接以发送电子邮件。