PHPMailer无法连接到SMTP主机

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHPMailer无法连接到SMTP主机相关的知识,希望对你有一定的参考价值。

我有这个表单,它发送电子邮件到电子邮件。在localhost它工作正常,当我上传到主机它给我以下的错误。

无法访问文件:SMTP错误:无法连接到SMTP主机

email.php

$first_name = $_POST['first_name'];
$last_name = $_POST['last_name'];
$portal = $_POST['portal'];
$piso = $_POST['piso'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$incidencia = $_POST['incidencia'];
$message = $_POST['message'];
$archivo = $_FILES['adjunto'];

require("archivosformulario/class.phpmailer.php");

$mail = new PHPMailer();

$mail->From     = $email;
$mail->FromName = $first_name; 
$mail->AddAddress("micrreo@gmail.com"); // Dirección a la que llegaran los mensajes.


$mail->WordWrap = 50; 
$mail->Ishtml(true);    
$mail->Subject  =  "Incidencia ";

$mail->Body     =  
    "Esto es un correo generado desde la web, si quiere mas informacion contacte con: correo@gmail.com 
<br". 
    "Nombre: $first_name 
<br />".    
    "Apellido: $last_name 
<br />".  
    "Portal: $portal 
<br />".
    "Piso: $piso 
<br />".
    "Email: $email 
<br />".
    "Telefono: $phone 
<br />".  
    "Incidencia: $incidencia 
<br />".
    "Mensaje: $message 
<br />";

$mail->AddAttachment($archivo['tmp_name'], $archivo['name']);



$mail->IsSMTP(); 
$mail->Host = "ssl://smtp.gmail.com:465";  // Servidor de Salida.
$mail->SMTPAuth = true; 
$mail->Username = "micorreo@gmail.com";  // Correo Electrónico
$mail->Password = "mipasswd"; // Contraseña


if ($mail->Send()){
    echo "<script>alert('bien');location.href ='javascript:history.back()';</script>";
}else{
    echo "<script>alert('Error al enviar el formulario')</script>";
    var_dump($_POST);
    exit();
}

?>

对不起我的英语,我是西班牙语非常感谢任何帮助我的人

答案

这可能是由于主机的PHP版本缺乏SSL支持,因为它写在这里:PHPMailer: SMTP Error: Could not connect to SMTP host

因此,如果启用了extension = php_openssl.dll,请检查您的php.ini文件。

如果已禁用,请不要忘记在启用此扩展后重新启动Web服务器。

希望它会对你有所帮助。

在你回答之后编辑:

虽然我不确定它可以提供帮助,但您可以尝试替换以下行:

$mail->Host = "ssl://smtp.gmail.com:465";

通过这些方式:

$mail->SMTPSecure = 'ssl'; 
$mail->Host = "smtp.gmail.com"; 
$mail->Port = 465;

此外,如果它不能与SSL一起使用,您可以尝试使用'tls'而不是'ssl',并用端口587替换端口465。

如果它仍然不起作用,您可以添加以下行,以便为您提供有关错误的更多信息:

$mail->SMTPDebug = 2;

以上是关于PHPMailer无法连接到SMTP主机的主要内容,如果未能解决你的问题,请参考以下文章

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

Lumen phpmailer:SMTP错误:无法连接到服务器:

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

禅道升级 & SMTP 错误:无法连接到 SMTP 主机

无法连接到 SMTP 主机:smtp.gmail.com,端口:465,响应:-1

Spring Boot - 无法连接到 SMTP 主机:smtp.gmail.com,端口:25,响应:421