PHPMailer:SMTP错误:10051无法连接到服务器:尝试对无法访问的网络执行套接字操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHPMailer:SMTP错误:10051无法连接到服务器:尝试对无法访问的网络执行套接字操作相关的知识,希望对你有一定的参考价值。

我编写了一个脚本来使用我的Gmail凭据发送邮件。它在我的本地机器上工作正常。这意味着我可以从本地计算机发送邮件。但是当我在实时服务器上执行此脚本时托管它时,我收到此错误:

SMTP - >错误:无法连接到服务器:尝试对无法访问的网络执行套接字操作。 (10051)

我的代码是

<?php

    require_once('core/class.phpmailer.php');

    $mail = new PHPMailer(); // Create a new object
    $mail->IsSMTP(); // Enable SMTP
    $mail->SMTPDebug = 2; // Debugging: 1 = errors and messages, 2 = messages only
    $mail->SMTPAuth = true; // Authentication enabled
    $mail->SMTPSecure = 'ssl'; // Secure transfer enabled REQUIRED for GMail
    $mail->Host = "smtp.gmail.com";
    $mail->Port = 465; // or 587
    $mail->Ishtml(true);
    $mail->Username = "you@gmail.com";
    $mail->Password = "***";
    $mail->SetFrom("you@gmail.com");
    $mail->Subject = "Test";
    $mail->Body = "hello";
    $mail->AddAddress("you@gmail.com");
    echo "<pre>";
    //var_dump($mail);
    if (!$mail->Send())
    {
       echo "Mailer Error: " . $mail->ErrorInfo;
    }
    else
    {
       echo "Message has been sent";
    }
    //var_dump($mail->Send())
?>

它适用于本地机器。

我认为SMTP电子邮件服务器的配置有问题

有什么解决方案吗?

答案

我认为在配置邮件服务器时会遗漏一些东西。

我想谷歌知道如何配置电子邮件服务器(当然,根据我的经验,他们提供了非常可靠的服务)。

问题是运行代码的计算机可以解析主机名但没有配置到该服务器的路由(在网络上可访问的服务器上禁用传出Internet访问的情况并不少见)。

您需要与管理网络和服务器的任何人交谈 - 但除非这是一个非常昂贵的支持合同的专用服务器,否则他们不太可能配置这种访问 - 但他们可能会建议您有权访问哪些MTA到(但你不能从'@ gmail.com'发送电子邮件)

以上是关于PHPMailer:SMTP错误:10051无法连接到服务器:尝试对无法访问的网络执行套接字操作的主要内容,如果未能解决你的问题,请参考以下文章

PHPMailer无法连接到SMTP主机

为啥 PHPMailer 无法连接到我的 SMTP 服务器

PHPMailer 中的“SMTP 错误:无法验证”

SMTP 错误:无法连接到服务器:php_network_getaddresses:getaddrinfo 失败:不知道这样的主机 | PHP 邮件程序 6.5

PHPmailer:SMTP 连接()失败(不工作)

PHPMailer 使用 SMTP 身份验证发送电子邮件,但 Gmail 仍然声称它无法验证发件人