【问题标题】:Im using php version 5.2. The script is working in 000webhost, but when i use yahoo web host it doesnt work我使用 php 版本 5.2。该脚本在 000webhost 中运行,但是当我使用 yahoo 网络主机时它不起作用
【发布时间】:2018-12-06 12:32:28
【问题描述】:

有人可以帮忙解释一下为什么我的脚本在 yahoo 网络主机中不起作用,但它在 000webhost 中起作用。我正在使用 phpmailer5.2 和 Phpversion 5.2.12

错误是连接失败。错误 #2:stream_socket_client() [function.stream-socket-client]:无法连接到 smtp.gmail.com:587(没有到主机的路由)[/products/phpmailer/class.smtp.php 第 304 行] 2018-12-06 03:50:16 SMTP 错误:无法连接到服务器:没有到主机的路由 (65) SMTP 连接()失败。 https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting

<?php
$result="";
if (isset($_POST['submit'])) {
require_once ('phpmailer/PHPMailerAutoload.php');
$mail = new PHPMailer;

$mail->isSMTP();
$mail->Host='smtp.gmail.com';
$mail->Port=587;
$mail->SMTPAuth=true;
$mail->SMTPSecure='tls';
$mail->Username='sample@gmail.com';
$mail->Password='';

$mail->setFrom($_POST['email'],$_POST['name']);
$mail->addAddress('');
$mail->addAddress('');
$mail->addAddress('');
$mail->addReplyTo($_POST['email'],$_POST['name']);

$mail->isHTML(true);
$mail->Subject='Form Submission: '.$_POST['subject'];
$mail->Body='<h1 align=center>Name: '.$_POST['name'].'<br>Email: ' .$_POST['email']. '<br>Company: ' .$_POST['company'].'<br>Position: ' .$_POST['position'].'<br>Current System Used: '.$_POST['system']. '<br>Message: ' .$_POST['msg'].'</h1>';

if (!$mail->send()) {

  $result="Something went wrong please try again.";

}
else{

  $result="Thanks ".$_POST['name']." sending your request. ";
}

}

?>

【问题讨论】:

  • 您使用的 PHPMailer 版本和 PHP 版本都非常过时,因此您的网站很容易受到攻击。立即升级两者。

标签: php phpmailer


【解决方案1】:

您的帖子中的错误很明显。

你有一个“没有主机路由”,所以问题是你的虚拟主机阻止了你连接到 gmail 服务器。

【讨论】:

  • 所以我用的是yahoomail而不是gmail?
  • 检查您的提供商规则,也许他们有授权的电子邮件提供商列表(并锁定与其他提供商的连接)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-28
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多