【问题标题】:PHPMailer: SMTP ERROR:10051 Failed to connect to server: A socket operation was attempted to an unreachable networkPHPMailer:SMTP 错误:10051 无法连接到服务器:尝试对无法访问的网络进行套接字操作
【发布时间】:2013-12-17 12:50:40
【问题描述】:

我编写了一个脚本来使用我的 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 电子邮件服务器的配置有问题

有什么解决办法吗?

【问题讨论】:

    标签: php gmail phpmailer


    【解决方案1】:

    我认为配置邮件服务器时缺少一些东西。

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

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

    您需要与管理网络和服务器的人员交谈 - 但除非这是具有非常昂贵的支持合同的专用服务器,否则他们不太可能配置此类访问 - 但他们可能会建议您使用哪些 MTA确实可以访问(但您将无法从“@gmail.com”发送电子邮件)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-05-14
      • 2018-10-03
      • 1970-01-01
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 2013-04-22
      相关资源
      最近更新 更多