Categories
PHP

PHPMailer con GMail

En un hilo publicado en forosdelweb, en el que un usuario desea utilizar el servidor SMTP de GMail para enviar correos usando PHPMailer, hacen referencia a esta interesante entrada que sirve justamente para lo antes mencionado.

Hice algunos cambios en class.phpmailer.php (línea 537) para separar correctamente el host y el puerto cuando se tienen cosas como $mail->Host = 'ssl://smtp.gmail.com:465';, estos cambios se hicieron debido a que GMail usa SSL/TLS como protocolo de comunicación/autenticación.

php:

# Original
if(strstr($hosts[$index], ":"))
        list($host, $port) = explode(":", $hosts[$index]);
else
{
        $host = $hosts[$index];
        $port = $this->Port;
}
php:

# Modificación
if (preg_match('#(([a-z]+://)?[^:]+):(\d+)#i', $hosts[$index], $match))
{
        $host = $match[1];
        $port = $match[3];
}
else
{
        $host = $hosts[$index];
        $port = $this->Port;
}

Página de prueba:

php:

<?php

require_once 'class.phpmailer.php';

$mail = new PHPMailer ();

$mail -> From = "foo@gmail.com";
$mail -> FromName = "Foo";
$mail -> AddAddress ("bar@domain.com");
$mail -> Subject = "Test";
$mail -> Body = "<h3>From GMail!</h3>";
$mail -> IsHTML (true);

$mail->IsSMTP();
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = 'foo@gmail.com';
$mail->Password = '******';

if(!$mail->Send()) {
        echo 'Error: ' . $mail->ErrorInfo;
}
else {
{       echo 'Mail enviado!'.
}

?>
 

Nota: Para hacerlo funcionar es necesario que la extensión OpenSSL esté habilitada.

Archivos relacionados

114 replies on “PHPMailer con GMail”

Excelente hack, precísamente andaba estos días liado con un formulario de contacto que utilizase una cuenta de correo de gmail (las de yahoo ya no ofrecen SMTP gratuíto).

Me ha gustado el site, ya me he sindicado.
saludos
jmarior desde

tengo el privilegio de contar con un correo gmail, pero, lamentablemente no puedo enviar correos adjuntos cuando van en formato powerpoint, o contiene imagenes, ya sean predeterminadas o diseñadas con la paleta de dibujo de Microsoft word.

les agradeceria su colaboracion

cordial saludo
Magda Barreto

Hola Magda, GMail no deja subir ciertos archivos que tengan una determinada extensión, el "truco" para enviar cualquier archivo es simplemente cambiar de extensión (Ej. archivo.ppt a archivo.ppt.renombrar).

Saludos

Excelente, funciona muy bien... incluso con hosted domains. El unico detalle a corregir es borrar una llave de mas al final y reemplazar el . x ;
Las ultimas dos lineas quedarian asi:

else {
echo 'Mail enviado!';
}

Hola!, uff esta genial esto del php mailer, tuve que instalar el openssl pero ahora basicamente funciona, es decir,llegan los correos, pero me arroga el siguiente Warnin:

Warning: fgets() [function.fgets]: SSL: fatal protocol error in /home/chongo/public_html/pruebas/mail/phpmailer/class.smtp.php on line 1024
Mail enviado!

Un poco de ese archivo:

1019 * @access private
1020 * @return string
1021 */
1022 function get_lines() {
1023 $data = "";
1024 while($str = fgets($this->smtp_conn,515)) {
1025 if($this->do_debug >= 4) {
1026 echo "SMTP -> get_lines(): \$data was \"$data\"" .
1027 $this->CRLF;
1028 echo "SMTP -> get_lines(): \$str is \"$str\"" .
1029 $this->CRLF;
1030 }

Hola, está muy bien el código que te has currado, pero siempre me genera un error que no logro entender:
"Language string failed to load: recipients_failed"
creo que tiene que ver con la cofiguración del parámetro "mail->SetLanguage" pero no estoy seguro.
Te agradecería mucho tu ayuda.
Gracias.

Si te manda ese error, es porque no está enviando el mail, para obtener la descripción de porque no lo hace, baja el paquete original de PHPMailer y haz las modificaciones que indico en el artículo.

Saludos

Ya solucioné el problema siguiendo los pasos del artículo, y ya envia el mail correctamente.

Saludos y gracias

Hola Alvaro !!
tengo el mismo problema que tú !!!
Mailer Error: Language string failed to load: recipients_failed
y al parecer el server solo manda correos a cuentas propias del dominio del mismo server
no se como solucionarlo
me puedes pasar el tip ???
ayudame .. pls !!!
mi correo es edgamn@tutopia.com

Como habilitar openSSL.

En Windows:
1. Copiar los archivos php_openssl.dll libeay32.dll ssleay32.dll C:\Windows\System32.
Estos archivos se encuentran donde hallas instalado php (.....\php\ext)
2. Editar php.ini de C:\windows y descomentariar php_openssl.dll

Yo modifique PHPMailer y habilité Open SSL y funciona bien con Gmail.
Saludos
FAR

Hola, estoy intentando configurar phpmailer, porque cuando intento enviar el email el error q envia es q el usuario no se puede autenticar. he probado con usuarios de
yahoo y un usuario local del servidor donde estoy ejecutando.
serian tan amables de darme una ayuda sobre q podria hacer-

gracias.

Bueno no hay fecha pero hasta hoy 14/11/2006 no me funciona el script me sale el siguiente error y en todos los servidores que tengo.

Error: Language string failed to load: connect_host

Alguien le sale un error, conoce un buen servidor donde probarlo, cualquier comunicacion con migo escriban hiphop666@hotmail.com, tb he estudiado mucho el antispam de hotmail y se como enviar a bandeja de entrada.

Pedro, no veo que antes hayas echo algún comentario, pero dale una mirada al comentario #10 para que te muestre un mensaje de error más adecuado.

Saludos

Muy bueno, pero al modificar esa parte... sigue funcionando correctamente con otros servidores?

Saludos.

perfecto, solo me aparece este warning en la pagina:

Warning: fgets() [function.fgets]: SSL: fatal protocol error in /home/chongo/public_html/pruebas/mail/phpmailer/class.smtp.php on line 1024
Mail enviado!

lo soluciono aggregando esta linea despues del require_once

error_reporting(0);

esta no es la solucion mas elegante pero funciona, lo importante es que el correo se envie.

Johan, el error al parecer sucede al momento de cerrar la conexión -de manera adecuada- con el servidor SMTP de gmail, lastimosamente no tengo mucho tiempo ni conocimientos para intentar solucionar el error, si encuentras o haces algo, te agradecería que me comuniques :).

Saludos

Hola, ando medio complicado con el envio de mail atraves de gmail. Por lo q he visto la modificacion a la clase seria lo q yo ando necesitando, pero lamentablemente no me anda. El error q tira es el que ya se ha comentado mas arriba:
Error: Language string failed to load: connect_host
Para orientarlos en mi situacion, tengo el archivo php.ini configurado de tal manera:
[mail function]
; For Win32 only.
SMTP = ssl://smtp.gmail.com

Obviamente ya he modificado la clase tal cual el articulo.

El unico problema q tuve es al buscar los tres archivos de ssl para copiarlos a windows\system32. Solo encontre el primero de ellos "php_openssl.dll" en mi carpeta de php. Por supuesto ya lo copie a c:\windows\system32. Ignoro donde encontrar los otros dos.

Espero haber sido claro en cual es mi situacion, necesito la ayuda lo antes posible debido a q debo entregar el trabajo y dependo de esta funcionalidad...

Desde ya muchas gracias.. y muy bueno el foro.

You don't need open SSL to get PHPMailer to work with Gmail. In addition to the changes suggested by alex right at the beginning, there's just one more absolutely crucial change:

File: class.smtp.php
Line: 1024

Original: while($str = fgets($this->smtp_conn,515)) {
Change to: while($str = @fgets($this->smtp_conn,515)) {

Do this and PHPMailer WILL work with Gmail.

hola ahi una mujer interesada en ayudar a un ser que esta pasando por crisis amorosa tengo dudas y solo quiero saber si hay alguien que me ayude averiguar la clave del correo de mi novio please ayuda sii alguien quiere ayudarme esper que me escriba al correo

para comentar algo sobre la instalacion de openssl en linux, en primera instancia yo use xampp, apache friends, y en la configuracion del php.ini ya esta configurado openssl, ademas de que la instalacion de xampp es muy facil, ahora yo uso una distribucion debian, si instalas por aptitude apache, php y mysql con soporte openssl, despues de esto tienes que revisar el archivo de configuracion php.ini donde puede estar comentada la opcion para activar openssl, la verdad a mi me funciona de maravilla phpmailer, que viva el software libre!.

Holas, disculpen mi ignorancia, pero esto sirve como formulario de contacto para enviar por ejemplo mails, si yo tuviera una cuenta en gmail? o cual es el proposito? ojala puedan orientarme un poco saludos... 😀

Ya paso mucho tiempo de la ultima respuesta pero voy a cumplir con informar. Gracias por tocar este y agradecer al que haya inciado este tema. Bueno yo actualmente estoy trabajando con zend framework, pero el problema es que no envia ni un pio de email no em sale ningun error . Por eso he decidido utilizar php mailer. He seguido los pasos descritos para modificar la clase php y me sale el error

NUMERO DE ERROR: 2
TEXTO DEL ERROR: fgets() [function.fgets]: SSL: fatal protocol error
lOCALIZACION: /home/consorci/phpmailer/class.smtp.php, Linea 1024, fecha February 27, 2007, 9:21 pm
Showing backtrace:
fgets("Resource id #83", "515") # line 1024, file: /home/consorci/phpmailer/class.smtp.php
SMTP.get_lines() # line 680, file: /home/consorci/phpmailer/class.smtp.php
SMTP.Quit() # line 595, file: /home/consorci/phpmailer/class.phpmailer.php
PHPMailer.SmtpClose() # line 515, file: /home/consorci/phpmailer/class.phpmailer.php
PHPMailer.SmtpSend("Date: Tue, 27 Feb 2007 21:21:29 -0500
Return-Path: foo@gmail.com...", "From GMail!
") # line 375, file: /home/consorci/phpmailer/class.phpmailer.php
PHPMailer.Send() # line 89, file: /home/consorci/app/controllers/NegocioController.php
NegocioController.sendAction() # line 118, file: /home/consorci/library/Zend/Controller/Action.php
Zend_Controller_Action.run(Object:Zend_Controller_Dispatcher, Object:Zend_Controller_Dispatcher_Token) # line 185, file: /home/consorci/library/Zend/Controller/Dispatcher.php
Zend_Controller_Dispatcher._dispatch(Object:Zend_Controller_Dispatcher_Token, true) # line 136, file: /home/consorci/library/Zend/Controller/Dispatcher.php
Zend_Controller_Dispatcher.dispatch(Object:Zend_Controller_Dispatcher_Token) # line 254, file: /home/consorci/library/Zend/Controller/Front.php
Zend_Controller_Front.dispatch() # line 79, file: /home/consorci/public_html/index.php

tengo un errorHanler. Lo bueno de todo es que envia . Como mendacionaron antes lo solucion es poner el error_reporting(0);

Bueno gracias es cuento tengo que informar

Tengo Instalado Php 4.3.9.9 y cuando intente correr el test, me arrojo dos Warning y Un error:

1) Warning: fsockopen(): no SSL support in this build in F:\php4\includes\class.smtp.php on line 104

2) Warning: fsockopen(): unable to connect to smtp.gmail.com:465 in D:\php4\includes\class.smtp.php on line 104

3)Error: Language string failed to load: connect_host

Todavia no logro que ande por el tema de openssl.
En cuanto a las personas que les da este error..

Language string failed to load

yo lo corregi setenado la ruta de la carpeta lenguajes, obviamente hay que reemplazar la direccion "PhpMailer/language/" por la direccion en que se encuentra esta carpeta.

PHP:

$phpMailer = new PhpMailer();
$phpMailer->SetLanguage("en","PhpMailer/language/");
 

Saludos

Holas... una pregunta... en este momento le funciona correctamente a alguien¿ ... desde hace un tiempo me dejo de funcionar... iba perfecto.. no cambie ni movi nada... y funcionaba de maravilla... ahora simplemente me sale

code:

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Connection timed out) in /home/horus/public_html/tateti/class.smtp.php on line 105
Error: Language string failed to load: connect_host

se que lo del language puedo solucionarlo subiendo los archivos de lang y seteandolo como esta mas arriba... pero el otro errorcito no salia 🙁 desde hace un tiempo si... alquien sabe algo al respecto¿... a alguien le sigue funcionando esto ¿

actualizado... instale estos archivos sobreescribiendo a los originales que vienen con php mail y solo me sale este error

Error: SMTP Error: Could not connect to SMTP host.

busque y busque pero nada :S

En CentOS funciona sin problemas... Pero aunque uno especifique un from distinto a la cuenta de gmail, el servidor de gmail reescribe esa parte del header del correo.

Muchas gracias por el dato!..

Saludos!

Hola alguien sabe cuantos emails puedo enviar con gmail en php mailer por dia y si alguien tiene otro metodo de la misma forma para enviar con lycos porfavor me responden a hiphop666(a)hotmail.com . o por este medio.

bueno el tema Warning: fsockopen() [function.fsockopen]: .... Error: SMTP Error: Could not connect to SMTP host. es proque noe sta bien configurado o bien noe sta actualizado su windows xp tienen que actualizar su php bajenlo de la misma pagina de internet y prueben.

Warning: fsockopen() [function.fsockopen]: no SSL support in this build in c:\inetpub\wwwroot\librerias\phpmailer\class.smtp.php on line 105

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.gmail.com:465 in c:\inetpub\wwwroot\librerias\phpmailer\class.smtp.php on line 105
Error: Language string failed to load: connect_host

Habilite openSSL e hize los cambios, pero sigue saliendo el mismo error...

saludos.

Tal parece que comparto el error de icaro:

Error: SMTP Error: Could not connect to SMTP host.

Tambien tenia el error Language string failed to load, el cual se resuelve siguiendo lo indicado en la entrada 33.

Estoy usando Apache/2.0.59 (Win32) PHP/4.4.4, ¿sera necesario actualizar php para que funcione?

Saludos

A mí me funciona perfectamente con una cuenta gmail pero no con otra. La que no me funciona tiene un número y la que me funciona sólo tiene letras. ¿Se puede solucionar modificando la linea

if (preg_match('#(([a-z]+://)?[^:]+):(\d+)#i', $hosts[$index], $match))

?

Hola, seguí todas las instrucciones: copié los tres archivos a windows/system32, modifiqué el phpmailer como al comienzo de ésta página, modifiqué php.ini de la carpeta windows y reinicié el servicio de apache, luego verifiqué con phpinfo() que el soporte de Open SSL estuviera activo, pero me muestra lo siguiente y no envia el correo :

Warning: fsockopen(): no SSL support in this build in c:\appserv\www\infored\cron\includes\class.smtp.php on line 87

Warning: fsockopen(): unable to connect to smtp.gmail.com:465 in c:\appserv\www\infored\cron\includes\class.smtp.php on line 87
Error: SMTP Error: could not connect to SMTP host server(s)

Gracias por sus aportes.

A ver, yo tengo una duda, se puede usar google apps?, yo tengo dominios hospedados en google, de echo usaba class.phpgmailer.php, pero de repente ya no pude mandar mails con en html, alguna sugerencia???

Saludos

Hola, ojalá me puedan ayudar, yo utilicé el código que viene en esta página pero me surge el siguiente error.

Warning: fgets(): SSL: fatal protocol error in /home/domains/factordigital.com.mx/web/admin/class.smtp.php on line 1024
Error: Language string failed to load: from_failedjohnatan.estrada@gmail.com

Ya he intentado con muchos ejemplos pero por lo que veo en este foro explican muchas maneras de usar el phpmailer con gmail, ojala alguien me pueda ayudar.

Bueno yo he logrado hacer el envio de los mail (gracias a los comentarios dejados), pero tengo este warnig que nose como solucionar.

Warning: fgets() [function.fgets]: SSL: fatal protocol error in D:\AppServ\www\phpmailer\class.smtp.php on line 1024
Mail enviado!

Si alguien encuentra la solucion se lo agradece mucho.

Para los que siguen con problemas el comentario 13 da la solucion para el SSL (no olviden reeniciar los servicios una vez copiados los archivos y habilitado el SSL).

Para los programadores que les sale la advertencia:

Warning: fgets() ... SSL: fatal protocol error

la solución que propone Erik aqui en este mismo post es correcta.

Sólo hay que editar el archivo class.smtp.php dentro de la carpeta del PHPMailer y reemplazar la linea que dice:

while($str = fgets($this->smtp_conn,515)) {

por la siguiente:

while($str = @fgets($this->smtp_conn,515)) {

La arroba es un operador de control de errores, en este caso ignoraría la advertencia y no lo mostraría.

Muy útil. Gracias Erik !

¿Existen límites para enviar correo?

Gmail ofrece un número limitado de envíos para impedir un uso inadecuado de nuestro sistema y ayudar a combatir el spam. Si alcanzas uno de los límites de Gmail, no podrás enviar correo temporalmente. Normalmente, este límite se elimina a las 24 horas.

Algunas de las causas, pero no todas, son:

* Enviar un mensaje a más de 500 destinatarios.
Puedes enviar un único mensaje a un máximo de 500 destinatarios mediante la interfaz web o hasta a 100 destinatarios si utilizas el acceso POP. Las direcciones pueden distribuirse entre los campos Para:, CC: y CCO:. Si te comunicas con el mismo grupo de personas de forma regular, te recomendamos que utilices Grupos de Google.

* Enviar una gran cantidad de mensajes que no se pueden entregar.
Te recomendamos que verifiques las direcciones de correo electrónico de tus contactos. Asegúrate de que las direcciones de correo electrónico a las que envías mensajes son válidas. Asimismo, es importante que todos los destinatarios a los que envías correo deseen recibirlo.

Fuente: Gmail.

He seguido todas las instrucciones, al habilitar openssl, también solo encontré un archivo, por lo tanto fué el único que copié y pegué en system 32. Pero me esta sacando el siguiente error:
Warning: fsockopen() expects parameter 2 to be long, string given in C:\wamp\www\phpmailer\class.smtp.php on line 105
Por favor, me urge saber que me esta pasando. Muchas gracias nos vemos y que esten muy bien.

Pueden enviarme su respuesta a shamankingthebestshaman@gmail.com o postearlo aquí.

Estimado : Aris Kelvyn Mota Martinez

no se quien me podria ayudar encontre un programa que con gmail envia 2mil mensajes por cuenta la idea esta es que tiene ese programa que no tenga el php que utilizo.

Alguien sabe proque pueden responder.

Por favor necesito saber alguin servidor gratuito(Hosting) el cual me ofresca la funcion Mail habilitado, si alguien sabe por favor decirlo

Albren, me daba el mismo error que a ti. Lo solucione bajandome el phpmailer modificado que esta en esta misma pag.reemplaza los dos archivos de phpmailer que tienes por estos y listo.

Debo dar gracias a las personas que aqui postean y por supuesto al creador, tenia como una semana tratando de enviar un correo y nada....y considerando que es para terminar mi trabajo de grado de la universidad, estoy mas que agradecido.

Gracias.....

Por favor He realizado todos los pasos, he probado todo en referencia al phpmailer, sin emabrgo, me gustaria saber que funcion necesita el hosting para que funciones de esta forma, cuando realiza las pruebas en el hostin solo me da una pagina en blanco y el correo nunca llego, cual sera el problema?, si alguien tiene la respuesta por favor mi correo es victoryanarico@gmail.com

Habilita el informe de errores al inicio de tu script (error_reporting(E_ALL);) y busca ayuda en base al error que te mostrará, probablemente estén deshabilitadas las funciones para abrir sockets.

Gracis por decir eso alex, sin emabrgo he llegado ala conclusion que, muchos de nosotros buscamos informacion, sin saber que requisitos necesitamos, es por eso que re-escribo de nuevo, escencialmente para decir que primeramente busquen si las funciones para abrir los socket se encuentren habilitadas tal como indica alex, ademas para usar la funcion mail(), el hosting debe tenerlos habilitadas si no es asi no funcionara, al igual que al phmailer, no siempre funciones en determinados hosting, es por eso, primero revisen que esten estas funciones habilitadas en su hosting

Hola es verdad el php funiona solo en algunos servidores, pero el local host de tu pc tienes que realizar una serie de pasos, en linux creo saber que fuciona bien.

Pero no entiendo como algunos programas de envio visuales envian con gmail al igual que outlook.

Entonces si esos programas envian creo que es posible enviar desde tu pc en windows con phmailer configurado con gmail, loq ue pido es que alguien ponga los pasos y que cambiar en windows abrir un puerto etc. y datos reales para no confundirnos.

Hola! Tengo un problema con este ejemplo... Me sigue dando este error y no entiendo xq. Sí tengo OpenSSL habilitado...

Warning: fsockopen(): unable to connect to smtp.gmail.com:587

Me tira este error y no se como se arregla alguien solidario me tire una idea gracias

Parse error: parse error, unexpected '}' in C:\AppServ\www\correo\test.php on line 25

Hola!! estoy probando el envio de correos con wamp y el servidor de correos QK SMTP Server 3...pero no me funciona :(...Alguien me podria decir que tengo que hacer (configurar) para que furule??? es importante...!!!!

Gracias!!!

Alex, el script esta muy bueno, funciona bien, el único problema es la llave y el punto extra en el else.

Alex, ante todo gracias por este aporte, porque estoy enviando correos! El codigo funciona bien! El unico inconveniente que tengo es que cuando termina de enviar el mail me aparece en pantalla "Error: SMTP Error: Data not accepted", en vez de "Mail enviado". Podrias ayudarme con esto? Ah perdon, tengo PHP5.2.4 y Apache 2.2.4.
Gracias nuevamente, y saludos desde Buenos Aires, Argentina!

Sebastian, a primera vista no tengo idea de porque te mande ese error, aunque tal vez sea que estás enviando un archivo adjunto no permitido por GMail.

Saludos

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.gmail.com:465 in /home/gurudass/public_html/v2/cms/class.smtp.php on line 105
Error: Language string failed to load: connect_host

la verdad que probe ya te todo y no encuentro el problema a esto. ojala que alguien tenga la solución a esto

Error: Language string failed to load: connect_host

Igual que a muchos...

Si mi computadora no va ser servidor OpenSSL, no veo el porque instalarlo, Solo tendría que tener asi en la conf. de php
Version
Apache for Windows 95/NT
Apache Version Apache/1.3.33 (Win32) PHP/4.3.10

openssl
OpenSSL support enabled
OpenSSL Version OpenSSL 0.9.7c 30 Sep 2003
____________________________________________________________________________

No sera que ya no se puede hacer eso con gmail ?

Espero y alguien nos pueda ayudar...
Gracias

Ya he subido todo al FTP porque no quiero testearlo desde localhost.

Ya corregí los archivos del mailer y del smtp, además dentro del formulario he ingresado todo como viene en el ejemplo, donde aparece el password con "******" pues lo cambio con la contraseña que será y cuando doy ENVIAR a mi formulario me dice "Mensaje enviado" pero no he recibido nada, alguien que lo tenga ya funcioanando con los cambios podría postear alguna solución del por qué no llegan?

Gracias de antemano.

Muestran como configurar el SSL desde Windows y Linux, pero es para quien tienen acceso al servidor, yo soy usuario de un Hosting, solo puedo subir archivos via FTP y tengo el mismo problema unable to connect to ssl://smtp.gmail.com:465
¿Como lo resuelvo?

Gracias

Yo al igual que muchos ten este Error: Language string failed to load: connect_host

mmm, bueno mi duda es aunke ya hice todo lo ke mencionan en los otros post pero sigue saliendo lo mismo, yo tengo un SMTP para outlook y aunke aki $Host = "localhost"; le cambie por el nombre de mi servidor nada mas no funciona yo solamente necesito enviar correos dentro de las direcciones de mi smpt, ke puedo hacer para ke funcione?

ola, baixei a ultima atualizacao e tambem nao estou conseguindo enviar email via smtp pelo gmail ... alguem pode ajudar?

Hola, he intentado usar esto, pero no me funciona. Esto es lo unico que he modificado porque me daba un par de errores de sintaxis

if(!$mail->Send()) {
echo 'Error: ' . $mail->ErrorInfo;
}
else {
echo 'Mail enviado!';
}

y bueno, al ejecutarlo el error que me da es este:

Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.gmail.com:465 in /home/vr000479/public_html/phpmailer/class.smtp.php on line 105
Error: SMTP Error: Could not connect to SMTP host.

A ver si me podeis ayudar por favor, muchas gracias y feliz año a todos

Agradezco mucho tu información Alex y la que todos han publicado en los comentarios, funciona correctamente el envío.. solo tengo una duda, es posible utilizar una cuenta de yahoo para el envío?. No se si el servidor smtp de ellos smtp.mail.yahoo.com tenga alguna restricción de acceso por que lo he probado pero siempre tengo el error de Error: Language string failed to load: connect_host. Gracias

Buenas tardes a todos,

Antes que nada agradezco la creacion de este apartado. Era lo que estaba buscando y he logrado que "funcione" de cierta manera, el problema que me sucede es el siguiente:
Leo los correos de una base de datos y luego los envio con la funcion phpmailer, pero el destinatario en vez de recibir un correo recibe varios y la cantidad recibida varia dependiendo de la cantida de destinataros en la base de datos (entre mas direcciones de correo, mas mesajes llegan) en una ocasion alguien recibio 250 mail y me regañaron por eso :P, reviso los procedimientos y aparentemente todo bien, mando a imprimir cada mail enviado y solo imprime 1na linea por correo enviado, pero al momento te revisar el correo aparecen muchos mails, si alguien le ha pasado algo parecido o pueda colaborarme le agradeceria.

pueden escribirme al correo, Muchas gracias.

A manera de actualización, solo comento que a partir de la versión 2.0 de phpmailer ya se puede enviar utilizando gmail nativamente, incluso viene un ejemplo, saludos.

yo tengo un problemilla:
estoy utilizando phpmailer y en el Body inserto todo el código html de la siguiente forma:

$mail2->Body = "
html>
head>
style type='text/css'>
/* PAGINA*/
body {

(...) TODO EL CSS NECESARIO

/style>
/head>
body>
div id='page'>

(...) EL CORREO

/div>
/body>
/html>
";

el problema es que todo el estilo css se aplica y se ve correctamente en el outlook, por ejemplo, pero no se ve en gmail/hotmail/...

En un principio el css lo puse linkado:

link rel='stylesheet' href='http://www.dominio.com/css/style.css' type='text/css' media='screen'

pero no funcionaba.

¿alguién ha tenido un problema similar?

¿alguién me puede ayudar a que se vea también en gmail/hotmail?

muchas gracias a todos.

Hola cómo están!

Creo que mi ISP me está bloqueando la salida de los correos.

Cuento con una base de +3000 suscriptores y quisiera intentar lo que aquí mencionan.

¿Se puede con el SMTP de GMAIL?

Gracias

Rodolfo creo que sé lo que está ocurriendo...

Si no me equivoco tú nunca reinicias el objeto del PHPmailer, con lo que cada vez que haces un AddAddress estás añadiendo una dirección más sin borrar los que ya añadiste anteriormente, o sea que si envias 200 correos habrá una persona que le enviarás 200 correos (el primero de tu lista).

¿Cómo reiniciarlo? Simplemente cada vez que vas a enviar un correo nuevo haz un "new PHPMailer();" en la variable con la que envías correos.

Saludos,
Beto Aveiga

Hola, el script funciona perfecto. alguien sabe alguna forma de cambiar la direccion remitente? o sea q llegue tipo micorreo@midominio.com
Por q ya probe de todo y no puedo, lo mas q logre fue cambiandolo del panel de control y llega asi "micorreo@gmail.com en nombre de micorreo@midominio.com

Si alguien me puede dar una mano lo agradeceria muchisimo! salu2!

Yo no lo he conseguido hacer funcionar con gmail. No llega a conectar con el servidor. He cambiado el puerto del servidor al 995, que es el que tiene gmail para los clientes de correo y tampoco me conecta.

Seguro que es por temas del SSL.

Por otra parte, he conseguido hacerlo funcionar con el servidor de correo de yahoo y además el remitente sea un correo de gmail. Para ello he echo lo siguiente:

$mail -> from ("micorreo@gmail.com")
$mail -> Sender("micorreo@yahoo.es").

De esta forma mando los correos a través del servidor de yahoo y el remitente es una dirección de gmail.

P.D:utilizo PHPMailer 2.0.0.0

Ya he conseguido que funcione con gmail. Era problema del SSL, con reiniciar el PC ha sido suficiente.

El truco que comentaba antes de cambiar el remitente no funciona con gmail, así que seguiré utilizando el de yahoo para poder modificar el correo.

Ayuda, me da un error al cargar la libreria de php_openssl.dll Nada mas reiniciar el pc me salta una ventanita que me dice "
PHP Starup: Unable to load dynamic library 'C:\AppServ\php\ext\php_openssl.dll' -No se puede encontrar el módulo especificado.
En php.ini tengo bien puesto : extension_dir ="C:\AppServ\php\ext\"
Y he comprobado que php_openssl.dll esta tanto en el archivo ext como en system32.
Reinstale php y me vuelve a salir lo mismo, aver si alguien me puede ayudar.

Buenas!!.. muy buenos los aportes... el tema de mandar el mail, me funciona sin drama... pero necesito tambien poder revisar los rebotados... o sea, para dejar una marca de los clientes a los cuales no pude mandarles el mail... alguna idea???

Grax

Estube probando la clse phpmailer pero solo funciono en tres correos ynunca mas resulto el tema, ojala alguien me peuda ayudar, lo realice con una cunta de hotpop

@Rodolfo (comentario 75) y
@Beto (comentario 79)

Creo que es mejor utilizar el método $mail->ClearAddresses(); después que se envía cada correo, así no se crean objetos repetidas veces, lo que consume muchos recursos.

Hola para los que tengáis el error:

Error: Language string failed to load: from_failedxxxx@xxx.xxx

es porque o bien no tenéis bien configurado el php.ini o bien tenéis mal configurados los parámetros:

From, FromName, AddAddress, Host, Port, Username, Password

a mi me salía ese error por tener mal el php.ini

Mi configuración del php.ini es:

[mail function]
; For Win32 only.
SMTP = ssl://smtp.gmail.com
smtp_port = 25

; For Win32 only.
sendmail_from =

Saludos.

hola..!
tengo muchos rollos con lo del Mailer Error: Language string failed to load: recipients_failed, ,
esas dos comas a la final no se porq salen, he cambiado todo, lo q creo q es necesario y nada..
se q el codigo esta bien.. porq me funcionaba con un solo destinatario, pero el problema surgio cuando le puse q eran varios como puedo solucionarlo???
gracias..!

A mí me sale el error:

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Unable to find the socket transport "ssl" - did you forget to enable it when you configured PHP?) in C:\xampp\htdocs\Proyecto web\class.smtp.php on line 122
Error: Language string failed to load: connect_host

A qué es debido? en otros foros pone que ssl no funciona y lo cambiaron a tls. Cómo se haría esto¿

Tengo el siguiente error:

Warning: fsockopen() [function.fsockopen]: unable to connect to ssl://smtp.gmail.com:465 (Se produjo un error durante el intento de conexión ya que la parte conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido responder. )

hablan de q tengo q instalar ssl, pero no se como? me descargue un openssl.so pero no se donde copiarlo?

Hola como estan: tengo un problema con mi correo gmail no lo puedo abrir ,hace dos dias que me sucede,en otros equipos comprobe y abro este coreo,lo que mas me preocupa es que en mi ordenador y en esa direccion electronica tengo mucha informacion en mi PC,desearia que alguien me ayudara,ya sea por aca o por otra direccion que es miguelange_l@hotmail.com
desde ya agradecido.

Gente, despues de mucho probar y cruzarme con la mayoria de los problemas que muchos se cruzaron en este post, me baje la ultima version del phpmailer de sourceforge y use como base el ejemplo que incluye el phpmailer para GMAIL. No tuve ningun otro problema y anda perfecto sin tener que modificar absolutamente nada. Haganlo, todo esto es para versiones viejas del phpmailer y errores que ya fueron corregidos. Saludos!

hola que tal estoy tratando de implementar este codigo en una pagina web para poder enviar mensajes a un correo de gmail pero no me funciona si alguien fuera muy amable en ayudarme y explicarme paso a paso como hacerlo le estaria muy agradecida necesito urgente solucionar este problema para un proyecto de la universidad help me please....

Tengo el Mejor Script programado por mi al que le insterese me contacta a: solanasnet arroba hotmail.com Es mas que un Script, llevo 5 meses de programacion ya incluye bases de datos y puedes poner las cuentas de gmail que va enviando una y salta a la otra en cierto nuemro de envios sin caer en spam y sin que gmail te borre la cuenta 1005 garantizado aqui el video mal grabado pero espero vean algo http://www.youtube.com/watch?v=9XSSnztEy_M

hola alguien me podria ayudar a resolver un problemon------- necesito la clave del programa microsoft office 2007 small business si alguien se la sabe por favor pasenmela se los agradecere toda la vida pliss.........nada mas tengo 45 dia mi correo es sad_more@hotmail.com

No encuentro las lineas del comienzo!:

# Original

if(strstr($hosts[$index], ":"))

list($host, $port) = explode(":", $hosts[$index]);

else

{

$host = $hosts[$index];

$port = $this->Port;

el resto ya lo cambie!, alguien me dice donde la encuentro? Ahí dice 537, pero no esta ni cerca... Me aburrí de buscar!

Alguien alguna ves me dijo que no lo podria lograr ahora se tendran que tragar su veneno voy con todo y nada me detendra siempre con constancia y esperanza todo se puede lograr nunca dejen de creer ni de seguir sus sueños yo lo modifique un poco el codigo del test y asi quedo MUCHAS GRACIAS AMIGOS;

From = "corh861212@gmail.com";
$mail -> FromName = "Foo";
$mail -> AddAddress ("corh861212@gmail.com");
$mail -> Subject = "Test";
$mail -> Body = "From GMail!";
$mail -> IsHTML (true);

$mail->IsSMTP();
$mail->Host = 'ssl://smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPAuth = true;
$mail->Username = 'corh861212@gmail.com';
$mail->Password = 'hectordaniel';
$exito=$mail->Send();
if($exito){
echo 'El correo fue enviado correctamente.';
}else{
echo 'Hubo un inconveniente. Contacta a un administrador.';
}

a mi me pasa igual, me da el error:
Could not connect to SMTP host, he modificado todo ya, incluso el gmail activado los pop e imap, y tambien activado openssl desde xampp, pongo aki el codigo:
$mensaje = "Mensaje desde JEEP-HISPANO de: $nombre , numero de telefono $telefono ";
$mail = new PHPMailer();
$mail->IsSMTP();
echo $mensaje;
$mail->Host = 'smtp.gmail.com';
$mail->From = 'dkskywalker2@gmail.com';
$mail->FromName = 'JEEP-Contactos-a llamar';
$mail->Subject = 'datos del contacto';
$mail->AltBody = 'prueba';
$mail->WordWrap = 50;
$mail->MsgHTML($mensaje);

/* Sustituye (CuentaDestino ) por la cuenta a la que deseas enviar por ejem. admin@domitienda.com */

$mail->AddAddress('yeah@gmail.com');
$mail->IsHTML(true);

/* Sustituye (CuentaDeEnvio ) por la misma cuenta que usaste en la parte superior en este caso prueba@domitienda.com y sustituye (ContraseñaDeEnvio) por la contraseña que tenga dicha cuenta */
$mail->Mailer = 'smtp';
$mail->Host = 'smtp.gmail.com';
$mail->Port = 465;
$mail->SMTPSecure = 'ssl';
$mail->SMTPAuth = true;

$mail->Username = 'dkskywalker2@gmail.com';
$mail->Password = 'XXXX';

if(!$mail->Send()) {
echo pepe3;
return false;
} else {
echo pepe4;
return true;
}

Comments are closed.