我编写了一个脚本,使用我的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电子邮件服务器的配置存在问题
有没有解决方案?
答案 0 :(得分:0)
我认为在配置邮件服务器时会遗漏一些东西。
我想谷歌知道如何配置电子邮件服务器(根据我的经验,他们提供非常可靠的服务)。
问题在于运行代码的计算机可以解析主机名但没有配置到该服务器的路由(在网络上可访问的服务器上禁用传出Internet访问的情况并不少见。)
您需要与管理网络和服务器的人交谈 - 但除非这是一个非常昂贵的支持合同的专用服务器,否则他们不太可能配置这种访问 - 但他们可能会建议您使用哪些MTA有权访问(但你无法从'@ gmail.com'发送电子邮件)