uso phpMailer y me da el error "SMTP connect() failed."
Publicado por Express (8 intervenciones) el 09/10/2019 18:24:10
Hola a todos. Me sucede que necesito enviar correos a los clientes. desde mi web. Para eso pretendo usar la clase phpmailer, he probado con varios ejemplos que he visto en internet y en todos me está arrojando error "SMTP connect() failed. https://github.com/PHPMailer/PHPMailer/wiki/Troubleshooting" en un primer caso y " SMTP Error: Could not connect to SMTP host." en el ejemplo que aparece por defecto en gintub de la api phpmailer. Ya habilite el correo para que permita conexiones de app menos seguras. El usaurio y contraseña estan bien. Ya no se que mas hacer . Habajo les pongo el codigo de los dos ejemplos que tengo.
en este segundo caso usé composer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
require("class.phpmailer.php");
require("class.smtp.php");
if ( !isset($_POST["nombre"]) || !isset($_POST["email"]) || !isset($_POST["asunto"]) || !isset($_POST["mensaje"]) ) {
die ("Es necesario completar todos los datos del formulario");
}
$nombre = $_POST["nombre"];
$email = $_POST["email"];
$asunto = $_POST["asunto"];
$mensaje = $_POST["mensaje"];
$destinatario = "micorreo@gmail.com";
// Datos de la cuenta de correo utilizada para enviar v�a SMTP
$smtpHost = "mail.gmail.com"; // Dominio alternativo brindado en el email de alta
$smtpUsuario = "micorreo@gmail.com"; // Mi cuenta de correo
$smtpClave = "************"; // Mi contrase�a
$mail = new PHPMailer();
$mail->IsSMTP();
$mail->SMTPAuth = true;
$mail->Port = 587;
$mail->IsHTML(true);
$mail->CharSet = "utf-8";
// VALORES A MODIFICAR //
$mail->Host = $smtpHost;
$mail->Username = $smtpUsuario;
$mail->Password = $smtpClave;
$mail->From = $email; // Email desde donde env�o el correo.
$mail->FromName = $nombre;
$mail->AddAddress($destinatario); // Esta es la direcci�n a donde enviamos los datos del formulario
$mail->Subject = "Formulario desde el Sitio Web de Roceb"; // Este es el titulo del email.
$mensajeHtml = nl2br($mensaje);
$mail->Body = "
<html>
<body>
<h1>Recibiste un nuevo mensaje desde el formulario de contacto</h1>
<p>Informacion enviada por el usuario de la web:</p>
<p>nombre: {$nombre}</p>
<p>email: {$email}</p>
<p>asunto: {$asunto}</p>
<p>mensaje: {$mensaje}</p>
</body>
</html>
<br />"; // Texto del email en formato HTML
$mail->AltBody = "{$mensaje} \n\n "; // Texto sin formato HTML
// FIN - VALORES A MODIFICAR //
$mail->SMTPOptions = array(
'ssl' => array(
'verify_peer' => false,
'verify_peer_name' => false,
'allow_self_signed' => true
)
);
$estadoEnvio = $mail->Send();
if($estadoEnvio){
echo "El correo fue enviado correctamente.";
} else {
echo "Ocurrió un error inesperado.".$mail->ErrorInfo;
}
?>
en este segundo caso usé composer
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
use PHPMailer\PHPMailer\PHPMailer;
use PHPMailer\PHPMailer\SMTP;
use PHPMailer\PHPMailer\Exception;
// Load Composer's autoloader
require 'vendor/autoload.php';
// Instantiation and passing `true` enables exceptions
$mail = new PHPMailer(true);
try {
//Server settings
$mail->SMTPDebug = SMTP::DEBUG_SERVER; ; // Enable verbose debug output
$mail->isSMTP();
$mail->Debugoutput = 'html';
$mail->Host = 'imap.gmail.com'; // Set the SMTP server to send through
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'yjmarichal2@gmail.com';
$mail->Password = '*********'; // SMTP password
$mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS;
$mail->Port = 587 ; // TCP port to connect to
//Recipients
$mail->setFrom('yjmarichal2@gmail.com', 'Mi mismo');
$mail->addAddress('yjmarichal2@gmail.com', 'Mi mismo'); // Add a recipient
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Here is the subject';
$mail->Body = 'Seria muy bueno que <b>funcionara<b>';
$mail->AltBody = 'Seria muy bueno que funcionara';
$mail->send();
echo 'Email has been sent';
} catch (Exception $e) {
echo "Email could not be sent. Mailer Error: {$mail->ErrorInfo}";
}
?>
Valora esta pregunta


0