2011-05-29 27 views
9

estoy tratando de usar phpMailer para enviar mensajes de confirmación a los usuarios por correo electrónico. mi código es este:PHPMailer para usar Gmail como servidor SMTP. No se pudo conectar al host SMTP. Error de la aplicación de correo: error de SMTP: no se pudo conectar al host SMTP

<?php 
include("class.phpmailer.php"); 
include("class.smtp.php"); 
$mail = new PHPMailer(); 
$mail->IsSMTP(); // set mailer to use SMTP 
$mail->Host = "ssl://smtp.gmail.com"; // specify main and backup server 
$mail->Port = 465; // set the port to use 
$mail->SMTPAuth = true; // turn on SMTP authentication 
$mail->Username = "[email protected]"; // your SMTP username or your gmail username 
$mail->Password = "mypasswrord"; // your SMTP password or your gmail password 
$from = "[email protected]"; // Reply to this email 
$to="[email protected]"; // Recipients email ID 
$name="Jersey Name"; // Recipient's name 
$mail->From = $from; 
$mail->FromName = "Webmaster"; // Name to indicate where the email came from when the recepient received 
$mail->AddAddress($to,$name); 
$mail->AddReplyTo($from,"Webmaster"); 
$mail->WordWrap = 50; // set word wrap 
$mail->IsHTML(true); // send as HTML 
$mail->Subject = "Sending Email From Php Using Gmail"; 
$mail->Body = "This Email Send through phpmailer, This is the HTML BODY "; //HTML Body 
$mail->AltBody = "This is the body when user views in plain text format"; //Text Body 
if(!$mail->Send()) 
{ 
echo "Mailer Error: " . $mail->ErrorInfo; 
} 
else 
{ 
echo "Message has been sent"; 
} 
?> 

ya habilitado ssl en php.ini.

PS> [email protected] es un correo electrónico de máscara para proteger la privacidad. pero yo he puesto una verdadera dirección de correo electrónico en esa parte

+0

Ha considerado el uso http://swiftmailer.org/? Funciona de la caja para enviar correos electrónicos a través de GMail. Gran biblioteca! :-) – Flukey

+0

Además, cambie el host de "ssl: //smtp.gmail.com" a "smtp.gmail.com" – Flukey

+0

no pasó nada ... ni siquiera un eco – phpDeveloperForThesis

Respuesta

14

en ti php.ini asegurarse de que ha descomentado la línea con

extension=php_openssl.dll 
+2

esto es solo para windows ... donde es para linux –

+2

Para Linux: extension = php_openssl.so –

0

De here

2) Comentario a cabo las siguientes líneas de código en class.phpmailer.php

/* 
if(strstr($hosts[$index], ":")) 
list($host, $port) = explode(":", 
$hosts[$index]); else 
*/ 

Prueba esto si no lo ha ya.

+1

esa línea no existe en mi class.phpmailer.php – phpDeveloperForThesis

0

This page tiene un código que el autor afirma que "funcionó a la perfección".

La única diferencia real que veo entre su y el suyo es que su tiene:

$mail->Mailer = "smtp"; 

supongo que me gustaría empezar con su código exactamente para ver si funciona, y luego depurar desde allí.

+0

todavía no funciona – phpDeveloperForThesis

+0

Así que su código funciona para él, pero no para usted ? Luego hay algo diferente en el entorno ... Prueba 'telnet smtp.gmail.com 465' para asegurarte de que no sea un problema de firewall. La siguiente causa más probable es una falla al validar el certificado SSL del servidor. – Nemo

2

Solamente es necesario activar el extension=php_openssl.dll

y seguir estas instrucciones dadas en this link

he probado, es trabajar 100%

0

equivocada:

$mail->Host = "ssl://smtp.gmail.com"; // specify main and backup server 

buena:

$mail->Host = "smtp.gmail.com"; // specify main and backup server 
+1

Esto no funciono para mi. Solo funciona con el "ssl: //" incluido. – neave

Cuestiones relacionadas