PHPMailer la estupenda librería de la cual hemos comentado en oportunidades anteriores se esta actualizando constantemente y entre las nuevas cualidades esta la posibilidad de enviar Email utilizando el servidor SMTP de Gmail, con lo cual resolvemos el problema de no tener un servidor SMTP para hacer los envíos.
![]()
Utilizando PHPMailer con Gmail
Debido a las actualizaciones que han hecho en PHPMailer algunos métodos han cambiado y se han agregado otros, entre los cuales se encuentran los métodos para utilizar Gmail en nuestros envíos.
Entonces primero descargamos los archivos fuente e incluimos los archivos class.phpmailer.php y class.smtp.php, para luego inicializar la clase, luego asignamos los datos del host y puerto de Gmail y adicionalmente colocamos nuestro usuario y clave de Gmail pues para hacer uso de este SMTP hace falta autentificación.
-
include("class.phpmailer.php");
-
include("class.smtp.php");
-
-
$mail = new PHPMailer();
-
$mail->IsSMTP();
-
$mail->SMTPAuth = true;
-
$mail->SMTPSecure = "ssl";
-
$mail->Host = "smtp.gmail.com";
-
$mail->Port = 465;
-
$mail->Username = "username@gmail.com";
-
$mail->Password = "userpass";
Hasta este punto ya tenemos configurado nuestro script para utilizar el SMTP de Gmail, el siguiente paso es preparar y hacer el envío del email.
-
$mail->From = "user@domain.com";
-
$mail->FromName = "User Name";
-
$mail->Subject = "Subject del Email";
-
$mail->AltBody = "Hola, te doy mi nuevo numero\nxxxx.";
-
$mail->MsgHTML("Hola, te doy mi nuevo numero<br><b>xxxx</b>.");
-
$mail->AddAttachment("files/files.zip");
-
$mail->AddAttachment("files/img03.jpg");
-
$mail->AddAddress("destino@domain.com", "Destinatario");
-
$mail->IsHTML(true);
-
-
if(!$mail->Send()) {
-
} else {
-
echo "Mensaje enviado correctamente";
-
}
Nótese que en From podemos colocar la dirección email que deseamos se muestre y no necesariamente nuestra cuenta Gmail, en AltBody se envía el mensaje en texto plano y MsgHTML el mensaje en formato HTML. Adicionalmente y como prueba estamos adjuntando dos archivos, finalmente en el método AddAddress agregamos los datos del destinatario de nuestro email.
Conclusiones
Como pueden ver utilizar Gmail para el envío de nuestros email es muy sencillo, solo requiere unas lineas adicionales a nuestro script y obviamente una cuenta en Gmail la cual es gratuita.
Posts Relacionados

Comentarios Total 47 comentarios
Publicado: 04/11/2008 10:35 am
Como puedo hacer para llamar al php desde htlm,gracias
Publicado: 04/11/2008 2:11 pm
buenas, esta muy buena la explicacion, pero falto agregar que como gmail utiliza SSL, por lo tanto hay que tener SSL instalado (para PHP es OpenSSL) y ademas configurarlo… (todavia estoy en eso)
saludos.
Publicado: 05/11/2008 5:08 am
Tengo el problema de que siempre me coge de FROM la cuenta gmail en lugar de la que especifico en $mail->FROM. Alguna solución?
Publicado: 09/11/2008 7:06 pm
Y como seria para enviar mails con el Gmail For Your Domain.
Publicado: 10/11/2008 7:05 am
a donde incluyo los binarios. tengo appserv.
Publicado: 11/11/2008 2:49 pm
El problema es que los hosting te cobran a parte por instalarte openssl.
Y otra cosa que aun asi en los hotmail llega como No deseado
Es una lucha que nunca acabara eso del hotmail..
Publicado: 18/11/2008 2:07 am
Hola alguien sabe de una manual donde se explique la configuración y instalacion de Openssl para windows
Publicado: 22/11/2008 12:26 pm
hola unijimpe,
buen artículo. Sabe que restricciones tiene GMAIL en el envio de emails por hora o por día via SMTP. Lo digo porque me interesaría implementar esta aplicación en mi web.
un saludo y gracias por ayudarnos a todos en este embolao de la programación
Publicado: 22/11/2008 7:20 pm
Hola, es cierto que hay limitaciones y por que Gmail quiere evitar que utilicen sus servidores para hacer SPAM.
Los límites son: en mensaje puede ser enviado a un máximo de 100 destinatarios, para mayor información puedes leer: http://mail.google.com/support/bin/answer.py?hl=en&answer=22839
Publicado: 24/11/2008 8:48 am
no Puedo lograr que lleguen a hotmail,no llega directamente encambio a gmail llegan y rapidisomo
alguien me puede ayudar
Publicado: 17/12/2008 2:10 pm
Funciona muy bien, en GNU/Linux simplemente hay que tener instalado openSSL y listo.
Publicado: 22/12/2008 2:41 am
Tengo un problema con este codigo, dice que no se puede conectar… y tengo todo bien configurado, que puedo hacer? XD
Publicado: 24/12/2008 10:10 am
Estoy tratando de configurar el WebcamXP para que envie los correos al detectar movimiento en la camara, configure todo para el SMTP de gmail pero nada me insiste en esto: Cannot send e-mail : Must issue a STARTTLS command first. 39sm4883941agb.23 que hago…
Publicado: 30/12/2008 11:00 am
Estimados, cuando pruebo el codig descrito me aparece el siguente error..
Que puede ser???
Warning: fsockopen() [function.fsockopen]: unable to connect to 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. ) in C:\wamp\www\php-mailer\class.smtp.php on line 105
Error: Language string failed to load: connect_host
Publicado: 09/01/2009 3:57 pm
Ivan prueba el puerto 587. Alguien me podrá ayudar a me da el siguiente error Cannot send e-mail : Must issue a STARTTLS command first. 39sm4883941agb.23 que hago… creo que necesito un certificado , pero no se mucho de esto. Que SERA???? quien me ayuda.
Publicado: 25/01/2009 9:02 pm
Yo he probado ha mandar los mails y me da el siguiente 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?)
Alguien me puede ayudar a solucionarlo?
Estoy como servidor local con xampp y supuestamente tengo openssl montado y funcionando
gracias por la ayuda
Publicado: 13/02/2009 10:27 am
Muchas gracias, lo he adapatado para usarlo con mi servidor de correo, me ha funcionado muy bien gracias a tus explicaciones y ejemplos.
Lo único en lo que tuve dificultades fue en un error similar a lo que pregunta David, y lo que hice fue comentarear la linea
$mail->SMTPSecure = “ssl”;
Saludos
Publicado: 15/03/2009 10:44 pm
instalen el xampp… alli el pack tiene todo SSL, MYSQL, FILEZILLA es confiable busquenlo en google..
Publicado: 07/04/2009 2:10 pm
Hola, me tira este error: “SMTP Error: Could not connect to SMTP host. Error: SMTP Error: Could not connect to SMTP host.”
Puede ser eso del SSL? Estoy con un servidor de Dattatec, alguno sabe si tienen ellos el ssl?
Publicado: 08/04/2009 10:17 am
Muy bueno, lo probaré.
Publicado: 14/04/2009 1:47 pm
muy buen aporte. Felicidades. Me sirvio y corrio a la primera. Un saludo
Publicado: 21/04/2009 9:37 pm
Bueno, la verdad, no es la primera ves que encuentro algo bueno en este blog…
Te felicito “Unijimpe“, creo que eres uno de los pocos que ha logrado sacarme un gracias de verdad…
Gracias; estuve buscando como enviar un mail con un servidor externo…
Publicado: 08/05/2009 5:34 pm
muy buen tutorial… voy iniciando en este blog y me eh encontrado con entradas realmente muy buenas…
para el openSSL has esto
agrega estas librerias al directorio
windows\system32
son las libeay32.dll,ssleay32.dll,php_openssl.dll
http://rapidshare.com/files/230755114/librerias_openSSL.rar
despues instala esto
http://rapidshare.com/files/230756153/Win32OpenSSL-0_9_8j.exe
y tambien descomenta la linea
extension=php_openssl.dll
en tu php.ini
eso realize yo… y me funciona perfectamente…
uso el appserv…
y me conecto a la BD del hosting free para enviar el boletin…
Publicado: 13/05/2009 10:08 am
Hola a todos.
Traté de implementar esta clase en mi servidor Web y me da el mismo error del openssl. He seguido todas las sugerencias y nada que funciona.
Específicamente el error es el siguiente:
Warning: fsockopen() [function.fsockopen]: unable to connect to 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. ) in C:\wamp\www\phpmailer\class.smtp.php on line 122
Error: Language string failed to load: connect_host
Probe moviendo las liberias libeay32.dll, sleay32.dll y _openssl.dll al symten32 y nada.
Descomente la línea correspondiente al openssl en el php.ini. Instale por separado el OpenSSL y no logra funcionar.
He probado tanto con AppServ como con WAMP.
Por favor, podría alguién decirme que estoy haciendo mal.
Muchas gracias.
Publicado: 13/05/2009 3:27 pm
Como puedo poner un alias que a los destinatarios no les aparezca “hugopinaemiliano@gmail.com” sino por ejemplo “hugo@misitio.com”, el ejemplo es magnifico me corrio a la primera pero si quisiera saber lo de algun alias.
Publicado: 14/05/2009 10:22 pm
Te agradesco amigo, este es un exelente manual, yo lo probe en ubuntu 9.04 y me funciono de maravilla, incluso al momento de enviarlos a hotmail te llegan a la bandeja de entrada (no te los marca como spam o correo basura)
Publicado: 26/05/2009 11:42 am
hugo piña…
da de alta tu dominio en los apps de google…
http://www.google.com/a/help/intl/es/index.html
y ahi te dara gmail con tu dominio… asi envio yo correos con mi dominio propio a mis clientes
Publicado: 01/06/2009 9:58 pm
Muy útil, gracias
Publicado: 11/06/2009 5:49 am
A mí tb 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
En otro foro pusieron q cambiaron ssl por tls y les funcionó…
cómo sería eso?
Publicado: 08/07/2009 3:42 pm
ejecuto el codigo tal cual como en el ejemplo desde mi sevidor y me manda la pagina en blanco, hay que configurar algo mas en el servidor o que pasa??? en serio quiero que esto funcione en php por que en asp ya logre mandar mails a cualquier cuenta pero sinceramente prefiero php
Publicado: 31/07/2009 1:32 am
me arroja el siguiente error:
Error: Language string failed to load: connect_host ya agrege los archivos al sistem32, comente y nada gracias por responder amigos
Publicado: 15/08/2009 8:07 pm
excelente unijuimpe, anda de pelos
Publicado: 06/09/2009 9:05 pm
Warning: fsockopen() [function.fsockopen]: unable to connect to smtp.gmail.com:25 (Connection timed out) in /home/usuario/public_html/gg/mail/includes/class.smtp.php on line 87
SMTP Error: could not connect to SMTP host server(s)You must provide at least one recipient email addressYou must provide at least one recipient email addressYou must provide at least one recipient email address
Aparece este error, si pongo Sendmail en vez de SMTP se soluciona
Publicado: 11/09/2009 4:30 pm
Saludos coloque este codigo en el servidor y me muestra el siguiente error y la verdad no se que podra ser hay se los dejo..
Parse error: syntax error, unexpected T_IF in C:\Program Files\wamp\www\index.php on line 23
donde la linea 23 es if(!$mail->Send()) {
Espero su ayuda…
Publicado: 14/09/2009 11:30 am
Hola:
revisa este script, a mi me funciona impk
http://proinf.net/permalink/envio_de_un_formulario_por_correo_mediante_php#id2039
Publicado: 20/09/2009 7:19 pm
[...] Enviar Email con PHP y Gmail | Fuente [...]
Publicado: 02/10/2009 7:42 pm
[...] http://blog.unijimpe.net/enviar-email-con-php-y-gmail/ Categorías:tecnología Etiquetas:email, Gmail, Google, HTML, PHP, PHPMailer, unijimpe, upload, ZIP Comentarios (0) Trackbacks (0) Deja un comentario Trackbacks [...]
Publicado: 16/10/2009 3:07 am
Para todos los que obtienen el error “SMTP Error: Could not connect to SMTP host. Error: SMTP Error: Could not connect to SMTP host.” en plataformas como WAMP. Yo he dado la vuelta a Internet sin encontrar solución hasta que vi esta: en el fichero php.ini descomenta la linea
extension=php_openssl.dll
Espero que os funcione.
Publicado: 20/11/2009 10:31 am
Amigo lo acabo de probar y funciona 100%, muchisimas gracias por este trucaso. habia tratado de todas las formas posibles y esta me resulto mas facil, y mucho mejor.
MILLL GRACIASSS
PD: Probado el dia 20 de noviembre del 2009
Publicado: 25/11/2009 11:36 pm
Kinunt
GRACIAS!
Publicado: 14/01/2010 7:39 pm
Kinunt, muchas gracias. Llevo todo el día buscando como solucionar ese error con WampServer y tu solución ha funcionado a la primera.
Publicado: 16/01/2010 3:44 pm
tengo PHPMAILER via GMAIL funcional para los interesados ya fue probado acepta imagenes perfecto llegan a bandeja de entrada.
svcy@hotmail.com
Publicado: 16/01/2010 3:47 pm
Tengo un PHP MAILER que trabaja via GMAIL anda perfecto pero como todos saben no puedo enviar muchos.
Alguien sabe alguna solucion para poder envioar muchos con GMAIL ??? no se que se podri hacer ?
Publicado: 10/02/2010 3:48 pm
como hago para que por cada email que se envie se haga una pausa de 3 o mas segundos?
Publicado: 16/02/2010 5:56 pm
Kinunt I love you!
Publicado: 26/02/2010 1:09 am
Para los q tuvimos el error:
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?
hay q configurar php para q tome php_openssl yo uso wamp server y una de sus funionalidades permite adicionar estas xtenciones muy facil de modo grafico, los q no usen wamp ( no se si el xamp o el appserv tienen tambien esta funccionalidad ) unos post mas atras explican como adicionar el openssl manualmente… exitos
Publicado: 14/03/2010 5:35 am
yo utilizaba sendmail, por la facilidad que requería, pero desde hace unos días no funciona, en el archivo error.log me sale esto: SSL is not available on this server.
Mi solución ha sido pasarme a PHPMailer.