【发布时间】:2019-07-23 21:26:51
【问题描述】:
我在实时服务器上遇到了 phpmailer 的问题,因为它给了我错误 smtp connect() failed (Netword is unreachable 101) 但在 localhost 上运行良好请有人指导我如何修复它我已经尝试过不同的方法但是没有任何效果...
phpmailer 代码
require '/home/schoswiy/public_html/assets/PHPMailer-master/src/PHPMailer.php';
require '/home/schoswiy/public_html/assets/PHPMailer-master/src/SMTP.php';
require '/home/schoswiy/public_html/assets/PHPMailer-master/src/Exception.php';
set_time_limit(0);
if(isset($_POST['send_message'])){
$name = trim($_POST['name']);
$subject = trim($_POST['subject']);
$email = trim($_POST['email']);
$message = trim($_POST['message']);
$mail = new PHPMailer\PHPMailer\PHPMailer(true);
$mail->isSMTP();
$mail->Host = 'smtp.gmail.com';
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$mail->SMTPAuth = true;
$mail->Port= 465;
$mail->SMTPDebug = 4;
$mail->Username ='myemail@gmail.com';
$mail->Password = 'pass';
$mail->SMTPSecure = 'ssl';
$mail->setFrom('myemail@gmail.com', 'xyz');
$mail->addReplyTo($email, $name);
$mail->addAddress('myemail@gmail.com');
$mail->Subject = $subject;
$mail->Body = $message;
if($mail->send()){
$_SESSION['msg'] = 'Message Send Successfully';
header("location:contact-us.php");
echo "messsage Send";
}
else {
echo "<script type='text/javascript'> alert('Failed to send')</script>";
}
}
?>
【问题讨论】:
-
发帖前先搜索一下——这个问题有很多重复;不要禁用证书验证;将您的代码基于 PHPMailer 提供的 gmail 示例;不要抑制错误输出;阅读错误消息指向您的文档。
-
我已经搜索了将近 3 或 4 个小时,并尝试了每一个解决方案,但没有任何效果,它在 localhost 上工作,但不知道为什么它在实时服务器上不工作很奇怪跨度>
-
以杂乱无章的方式尝试随机事物不是调试。废弃现有代码,返回 gmail 示例。阅读故障排除指南并按照它所说的做,一次做一件事。 非常您的实时服务器的托管服务提供商可能会阻止出站 SMTP,但您的本地服务提供商不会,这与此处多次发布并在文档中讨论的答案相同。
-
是的:问他们。如果他们不取消阻止,请使用更好的托管服务提供商。