Introducción a PHPMailer

PHPMailer es una clase escrita en PHP que facilita el envío de correo, añadiendo facilidad en el envío de correos con adjuntos, en formato HTML y con diferentes codificaciones, soporte para imagenes embebidas, headers personalizados y además funciona con múltiples servidores de correo.

phpmailer.png

Típicamente para el envío de correo con PHP se utiliza la función mail(), pero esta función tiene varias limitaciones, por ejemplo que no soporta el envío de adjuntos. Entonces PHPMailer nos viene a facilitar este trabajo que de otra forma seria muy engorroso. Viene con un conjunto de métodos que nos ayudarán en el envió de emails.

Empezando

El primer paso es descargar PHPMailer, aquí encontraremos dos archivos: class.phpmailer.php el cual contiene las funciones para el envío de correo y class.smtp.php para enviar correo mediante servidores SMTP.

Creamos un nuevo documento PHP en donde incluimos la clase y luego creamos una instancia de la clase para utilizarla mas adelante.

php
  1. <?php
  2. require("class.phpmailer.php");
  3. $mail = new PHPMailer();
  4. ?>

Propiedades del Mensaje

El siguiente paso es asignar las propiedades del correo que vamos a enviar como el servidor de correo, subject y From. Luego con el método AddAddress asignamos a quien o quienes vamos a enviar el correo, también se puede utilizar AddCC y AddBCC para las copias y copias ocultas:

php
  1. $mail->Host = "localhost";
  2. $mail->From = "remite@email.com";
  3. $mail->FromName = "Nombre del Remitente";
  4. $mail->Subject = "Subject del correo";
  5. $mail->AddAddress("destino1@correo.com","Nombre 01");
  6. $mail->AddAddress("destino2@correo.com","Nombre 02");
  7. $mail->AddCC("usuariocopia@correo.com");
  8. $mail->AddBCC("usuariocopiaoculta@correo.com");

Cuerpo del Mensaje

Hasta aquí hemos utilizado las funciones básicas de correo, pero ahora viene la parte del cuerpo del mensaje. Podemos enviar correo en formato HTML e incluso definir un texto que se mostrará si es que el lector de correo no soporta HTML.

php
  1. $body  = "Hola <strong>amigo</strong><br>";
  2. $body .= "probando <i>PHPMailer<i>.<br><br>";
  3. $body .= "<font color='red'>Saludos</font>";
  4. $mail->Body = $body;
  5. $mail->AltBody = "Hola amigo\nprobando PHPMailer\n\nSaludos";

Agregar Archivos Adjuntos

Ahora si deseamos añadir un archivo adjunto a nuestro mensaje utilizamos el método AddAttachment el cual recibe dos parámetros, el primero es la ruta del archivo que vamos a incluir y el segundo es el nombre que se va a mostrar en el correo para este archivo.

php
  1. $mail->AddAttachment("images/foto.jpg", "foto.jpg");
  2. $mail->AddAttachment("files/demo.zip", "demo.zip");

Finalizando

Finalmente el envío del correo se hace con la función send(). Entonces uniendo todas las partes de nuestro código tenemos:

php
  1. require("class.phpmailer.php");
  2. $mail = new PHPMailer();
  3. $mail->Host = "localhost";
  4.  
  5. $mail->From = "remite@email.com";
  6. $mail->FromName = "Nombre del Remitente";
  7. $mail->Subject = "Subject del correo";
  8. $mail->AddAddress("destino1@correo.com","Nombre 01");
  9. $mail->AddAddress("destino2@correo.com","Nombre 02");
  10. $mail->AddCC("usuariocopia@correo.com");
  11. $mail->AddBCC("usuariocopiaoculta@correo.com");
  12.  
  13. $body  = "Hola <strong>amigo</strong><br>";
  14. $body .= "probando <i>PHPMailer<i>.<br><br>";
  15. $body .= "<font color='red'>Saludos</font>";
  16. $mail->Body = $body;
  17. $mail->AltBody = "Hola amigo\nprobando PHPMailer\n\nSaludos";
  18. $mail->AddAttachment("images/foto.jpg", "foto.jpg");
  19. $mail->AddAttachment("files/demo.zip", "demo.zip");
  20. $mail->Send();

Si probamos este mensaje obtendremos el siguiente resultado en nuestra cuenta de correo en el cual notamos el mensaje en HTML y los archivos adjuntos.

php-mailer.gif

Desde luego que hemos utilizado solo las funciones básicas, hay muchas más opciones con las cuales se puede personalizar completamente el mensaje que enviamos, puedes encontrar un referencia de estas opciones en: http://phpmailer.sourceforge.net/docs/. Finalmente les dejo los archivos de este ejemplo funcionando para que lo prueben.

Comentarios Total 206 comentarios


Luis G
Publicado: 27/02/2007 9:05 am

Hola, te agradezco mucho la info. Estoy usando un script muuuy parecido a este y me funciona perfectamente. Sin embargo lo que me gustaria es que los usuarios de mi pagina puedan enviarme sus mensajes (en realidad algo asi como este cuadro donde estoy escribiendo, solo que enviando mi comentario a un email fijo).
Estoy intentando varias cosas, como usando $_POST[’texto’] en el $body, etc. Pero no consigo nada. Ademas, la opcion mail() esta desactivada por el servidor, asi que no se que mas opciones tengo.

Agradeceria infinitamente si me puedes/podeis ayudar

unijimpe
Publicado: 28/02/2007 6:53 pm

Para ello puedes leer http://blog.unijimpe.net/enviar-e-mail-con-php/ donde se explica como crear el formulario y enviar el correo. Ahora si esta deshabilitada la función mail(), es por que no tienes un servidor de correo. Para ello utiliza PHPMailer en donde puedes colocar que servidor de correo hará el envío.

ellioh
Publicado: 09/03/2007 11:16 pm

hola que tal, quisiera saber como enviar email a correos corporativos. lo que pasa es que estoy realizand una web que requiere el envio de mensajes a empresas q cuentan con webmail corporativos y al usar la funcion mail no puede envia r a estos correos. además quisiera saber si el php se puede conectar con el webmail para envio de email
Gracias pot todo, tus toturiales son de gran ayuda.
Agradecere tu ayuda

JO
Publicado: 14/03/2007 4:33 pm

Solo quisiera saber.. si de esto puede resultar un ciclo donde se envie un mail tantas veces uno quiera…¿Usted que cree?..

Gracias de Ante mano….

unijimpe
Publicado: 15/03/2007 12:19 am

Si claro que se puede, para ello debes crear un bucle y llamas a la función $mail->Send(); con lo cual se hará el envío repetidas veces. Ahora esto no es recomendable pues si envías demasiadas veces correo te pueden bloquear como si fueras spam.

luis14al
Publicado: 29/03/2007 6:58 am

Hola, quisiera saber, que debo poner en localhost?, o debo dejarlo asi como esta?…

Daniel
Publicado: 29/03/2007 6:23 pm

agradezco toda la ayuda y todo lo he hecho pero mi pregunta es como obtengo los datos de un formulario para el envio ya que todo lo que escribo en html sale igual en el correo y yo quiero es recopilar los datos del usuario. Gracias por la ayuda

unijimpe
Publicado: 31/03/2007 11:08 am

luis14al, localhost es el nombre de tu servidor SMTP, es decir si tu servidor esta en la misma maquina que PHP puedes dejarlo como localhost, de lo contrario si esta en otra maquina puedes poner el nombre de dominio o el IP de la maquina donde esta el servidor SMTP.

unijimpe
Publicado: 31/03/2007 11:10 am

Daniel en tu caso antes de hacer el envío de los datos por correo, puedes colocar una sentencia SQL en el cual guardas los datos ingresados en una Base de Datos, con esto lograrás almacenar esta información que tu necesitas.

gambit
Publicado: 30/04/2007 1:39 pm

si uso mail() en un bucle para enviar correo, algunos no llegan, por qué y que puedo hacer en vez de eso?
Es qeu necesito que a cada destinatario le llegue el correo con unos datos que se obtienen en el bucle.
Gracias

Francisco
Publicado: 10/05/2007 7:35 pm

Hola, tengo mi hosting con GoDaddy, pero no se si me permiten hacer uso de alguno servidor de correo, SMTP o algo parecido. Podrian ayudarme?

Gracias.

Hernan
Publicado: 17/05/2007 5:07 pm

Hola, me gustaria saber por que cuando corri el script me sale una pantalla en blanco y no envia nada, hice todos los pasos que estan en las indicaciones , sera que tengo que configurar algo, cambiara algun dato mas o tener instalado algo en mi maquina

unijimpe
Publicado: 17/05/2007 10:05 pm

Para hacer el envío de correo necesitas conectarte a un servidor SMTP, si esta instalado en tu maquina o hosting lo puedes llamar:

$mail->Host = “localhost”;

Ahora si el servidor de correo esta en otro dominio puedes cambiar esta línea y colocar la dirección de tu SMTP:

$mail->Host = “mail.midominio.com”;

Hernan
Publicado: 18/05/2007 8:37 am

Hola unijimpe, Me gustaria que me ayudara un poco mas con esto, ya que no soy experto en el tema de servidores de correo, que servidor de correo me recomendaria, ya que para aplicar el ejemplo en mi maquina, que configuracion tengo que hacerle al servidor de correo para que em funcione correctamente el ejemplo, en fin deme tada la explicacion necesaria para poner en marcha ete ejemplo, por ultimo me quiero saber si usted maneja puerto serial en PHP, le `pido disculpas por tanta molestia, pero me urge ya que es para mi proyecto de tesis, gracias…….

unijimpe
Publicado: 18/05/2007 9:09 am

Lamentablemente yo no he manejado el puerto serial, ahora si necesitas un servidor de correo local puedes utilizar Imail Server, el cual incluye un servidor de correo SMTP, descarga la versión trial y lo instalas como si fuera un programa cualquiera.

Hernan
Publicado: 18/05/2007 4:12 pm

El Imail Server es igual que el hMailServer, si es igual me puede ayudar a configurarlo, es que no soy muy bueno en esto… Gracias

luis
Publicado: 19/05/2007 3:47 pm

hola
que hago si el hosting que adquiri no tiene instalado el PHPMAILER, hay alguna forma de instalarlo?

unijimpe
Publicado: 19/05/2007 9:44 pm

PHPmailer no viene instalado ni necesita instalación, lo que se necesita es un servidor de correo SMTP, esto es si tienes un hosting con dominio misitio.com, típicamente tu servidor SMTP esta en mail.misitio.com, otra forma de acceder a tu servidor smtp es colocando localhost.

santi
Publicado: 07/06/2007 9:36 pm

unijimpe, gracias!

te queria consultar lo siguiente:

la idea es q el usuario pueda llenar 1 formulario y adjuntar su CV.

q deberia poner en esta linea entonces para hacer eso?
#
$mail->AddAttachment(“images/foto.jpg”, “foto.jpg”);

y en el HTML ?

gracias saludos!!

John Arrieta
Publicado: 08/06/2007 4:21 am

Viejo esto no funciona, ya lo he probado mas una docena de veces de no genera error si le cambio el servidor de correo, tampoco si una direccion o servidor de correo destino no existen, y para hacer mas chistosa la cosa, los correos nunca llegan.
Conclucion no sirve y me quedo con la funcion mail de php

Marco
Publicado: 17/07/2007 6:17 pm

Si funka pero ahi alguien ke tenga o sepa de un programa para tener tu correo en localhost???
ke me diga porfa
xxmarcopolo06xx@gmail.com
Graciaz

Kari
Publicado: 18/07/2007 3:01 am

¿Puedo agregar un for dentro del texto del correo? ¿como?

unijimpe
Publicado: 19/07/2007 8:14 am

Marco, una programa de servidor de correo SMTP es por ejemplo Imail Server, puedes descargar la versión de prueba y verás que funciona a la perfección para enviar correos desde el localhost.

Kari, lo que debes hacer es crear una variable en donde guardas tu texto, con esta variable puedes hacer for, if, while y cualquier sentencia que desees, al final esta variable se la pasas a $mail->Body para que lo puedas enviar.

JuanAn
Publicado: 23/07/2007 5:21 pm

Hola Unijimpe!

Enhorabuena por tu blog. Descubrí la clase phpmailer tiempo atrás y funciona perfectamente.

Ahora buscando información sobre esta clase he encontrador tu blog. Tengo un pequeño problemilla.Te comento: Uso la clase en un servidor propio y funciona, pero alguna vez cuando la uso manda correos repetidos, es decir, entrega al destinario varias copias del mismo e-mail, con lo que el correo lo detecta como SPAM. Os ha pasado? Como puedo solucionarlo? Es importante ya que mando correos corporativos a los clientes de la empresa donde trabajo y no es nada bueno que les envie siempre varias copias del mismo.

PD: Passa sobretodo con cuentas hotmail, gmail, yahoo.

hugo lepe s.
Publicado: 25/07/2007 1:58 am

Hola, disculpa por la consulta soy novato en el tema, pero necesito saber como y donde se instalan los archivos class.phpmailer.php y class.smtp.php.

Gracias por su ayuda.

unijimpe
Publicado: 25/07/2007 8:51 am

JuanAn, la verdad a mi siempre me ha funcionado de maravillas, puede ocurrir que en tu código este duplicado la dirección del destinantario por lo cual envía dos veces.

Hugo lepe, los archivos debes colocarlo en la misma carpeta donde se ubica el archivo que utilizarás para hacer el envío.

JuanAn
Publicado: 25/07/2007 2:49 pm

Hola de nuevo,

En el código no estan las direcciones repetidas. Me parece que el problema es de nuestro servidor de correo, ya que he probado con otro y funciona.

Ahora el único problema es que en cuentas de correo de hotmail, yahoo y gmail.

Un saludo y gracias,

Christian
Publicado: 31/07/2007 2:39 am

Hola…muy interesante el tema.
Lo que yo ando buscando es un formulario donde mis visitantes puedan atachar fotos y los envien directamente desde mi página y que llegue a mi mail particular.¿se puede hacer con esto? cómo sería?
Graciasss

Enviar Email con Adjuntos » unijimpe
Publicado: 31/07/2007 10:49 am

[...] La presente es una breve guía para implementar un formulario para enviar email con archivos adjuntos, para ello utilizaremos la librería PHPMailer, de la cual ya hemos hablado en Introducción a PHPMailer. [...]

Marc
Publicado: 31/07/2007 8:30 pm

A mi no me funciona :S
Tengo de servidor localhost y no me funciona.

Davinia
Publicado: 02/08/2007 4:31 pm

Hola, uso la librería PhpMailer para enviar correos desde una web. Funciona perfectamente excepto con correos hotmail y yahoo, osea, a estas cuentas nunca llegan los correos… he intentado solucionarlo cambiando algunos parámetros como el HeaderLine poniendo $this->HeaderLine(“X-Mailer”,”Microsoft Outlook, Build 10.0.2616″); o el $SMTPAuth a true, pero no hay manera.
Gracias de antemano.

Guzzilu
Publicado: 09/08/2007 3:23 pm

Buenas uso esta clase desde hace tiempo la verdad, en muchas de mis paginas, pero me ocurre algo muy curioso.

Tengo varios servidores y en cada servidor varios dominios,cada uno con su propio servidor de correo.

Inicialmente use un dominio, pero me di cuenta que no envía correos a dominios que estén registrado en el mismo servidor, sin embargo envía perfectamente a cuentas que no sean del mismo servidor (entre ellas hotmail, yahoo, google, etc).

Así que probé diciéndole que enviase desde el otro servidor, y tachan me hace justamente todo lo contrario, me envía a correos que estén alojados en ese servidor, pero no a correos que estén alojados en servidor.

Se te ocurre alguna explicación, para este fenómeno extraño?

zakaria
Publicado: 03/09/2007 8:54 pm

hola,acabo de instalar el phpmailer y no me funciona ,no se que poner en el host,lo he instalado en easyphp,¿deberia poner el localhost del apache del easyphp o el host del smtp que me he bajado?lo que pasa que no se donde conseguir ese host.por favor ayudeme.
muchas gracias

gabriel
Publicado: 05/09/2007 8:06 am

hola. no enteindo como esto funciona. quien crea el archivo mailphp.php?? me puedes explicar. en mi caso debo comunicar hacia unn SMTP ya que el servidor del sitio no es el servidor de correo.

gabriel herrera
Publicado: 05/09/2007 8:31 am

que tantos parametros debo modificar y en que archivo…

si alguien puede explicar que y como modifica y como un desde el formulario se llega finalmente a enviar el correo ??

gracias de nuevo.

unijimpe
Publicado: 05/09/2007 9:18 am

EasyPHP es un instalador para tener Apache, PHP y MySQL pero no tiene incluido un servidor SMTP, ojo necesitas un servidor SMTP, si lo instalas en tu maquina local entonces $mail->Host debe ser “localhost“, en caso que este en otro lugar, deber poner la dirección por ejemplo “mail.mihost.com“.

Respecto a modificar, descarguen los archivos de ejemplo y cambien solo la dirección de $mail->AddAddress que debe contener la dirección a donde debe llegar el mail, en este caso la cuenta de correo de ustedes.

Christian
Publicado: 08/09/2007 2:50 am

Hola amigos, tengo el siguiente problema al intentar envar mails:

Warning: fputs(): supplied argument is not a valid stream resource in /usr/local/apache2/htdocs/gos/desarrollo2/includes/class.smtp.php on line 128

Esto no ocurre siempre pero cuando ocurre no envia mail.

Gracias de Antemano

Johann
Publicado: 10/09/2007 9:53 pm

Hola Unijimpe, tengo un hosting service habilitado para php , yo sigo las instrucciones pero lo que no entiendo es si alog hay que programar en el mismisimo hosting para que funcione, podrias por favor dar un ejemplo de donde colocar los archivos en un hosting service yo uso plataforma linux hago todo, no me bota errores pero no envia nada no se que faltara anadir o configurar

ARCO
Publicado: 11/09/2007 12:02 pm

talvez no tengas activada la funcion mail()

KaRuRoSu
Publicado: 27/09/2007 7:18 am

Muchas Gracias por este ‘peacho manual’. Me ha sido de gran ayuda.

chicogreenday
Publicado: 30/09/2007 3:17 am

hola no encuentro un hosting con stm no saben si hay uno gratuitot cualquier cosa me mandan un mail plis car_680@hotmail.com peroq ue ela dmonistrador pueda ayudarme

Jgucani
Publicado: 04/10/2007 10:39 pm

Hola. Ya hice el montaje y no devuelve nada ni llegan los email. Como valido si hubo errores en el proceso de envío ?
Gracias !

Jgucani
Publicado: 09/10/2007 3:25 am

Holas. Corrijo el mensaje anterior. Ya me funciona ok la función, aunque le hice un pequeño ajuste. No me funciona local desde mi pc, sino que tuve que colocarlo en un host en la web.

mariano
Publicado: 16/10/2007 9:29 pm

Hola
como se pueden mostrar imagenes en el body?

oidacra
Publicado: 20/10/2007 6:16 am

Excelente…. mejor se daña…

CARLES
Publicado: 25/10/2007 2:03 am

hola, he estado probando el phpmailer, pero no se como se ejecuta un script php, ¿se necesita algun programa?

hice todo lo que se dice, pero al ejecutar el script, no sale nada. Lo ejecuto desde la barra de direcciones del navegador: http://www.servidor.es/test.php

pero no ocurre nada de nada,
¿que me falta?

unijimpe
Publicado: 25/10/2007 9:37 am

Para ejecutar scripts php, necesitas tener instalado PHP. Generalmente todos los servicios de hosting actuales ya tienen soporte para PHP. Ahora si lo que deseas es instalar PHP en tu PC puedes leer Instalar Apache y PHP en WinXP.

CARLES
Publicado: 25/10/2007 6:37 pm

hola unijimpe, gracias por la respuesta.

Instale apache 2.0.59 y php 4.4.7 en mi pc correctamente, y me puse a probar el phpmailer, pero he fracasado.

Tengo un servidor smtp remoto, y puse el host: smtp.servidor.es, a la hora de enviar el mail me aparece el siguiente mensaje:

Message was not sent.Mailer error: SMTP Error: The following recipients failed: fulanito@mail.es, …

tambien probe de poner como host: mail.servidor.es, pero da error:

Warning: fsockopen() [function.fsockopen]: unable to connect to mail.servidor.es:25 in C:\Archivos de programa\Apache Group\Apache2\htdocs\phpmailer\class.smtp.php on line 105
Message was not sent.Mailer error: SMTP Error: Could not connect to SMTP host.

En fin, me gustaria saber como configurar el phpmailer para ejecutarlo desde mi computadora pero con un servidor de smtp remoto, ya que tambien prove de subir los archivos al servidor remoto y ejecutarlos desde alli pero sin resultado, me aparecia el codigo php escrito como texto plano en el navegador, supongo que esto es debido a que mi servidor no tiene instalado php (es asi?)

muchas gracias unijimpe

CARLES
Publicado: 25/10/2007 8:58 pm

perdon,

ya lo solucione, el problema estaba en que mi servidor smtp necesita autentificacion, para quien le pase lo mismo, añadir:

$mail->Mailer = “smtp”;
$mail->Host = “smtp.dominio.es”;
$mail->SMTPAuth = true;
$mail->Username = “usuario”;
$mail->Password = “contraseña”;

gracias de todas formas, aprovecho para preguntar cuales son los servidores en los que no se necesita autentificacion.

una ultima cosa, alguna guia de como añadir codigo html? he intentado poner un par de tablas con una imagen y texto pero no me funciona.

muchisimas gracias!

Jonathan
Publicado: 01/11/2007 12:29 am

cuando agrego las lineas me sale error
Notice: Use of undefined constant “smtp” – assumed ‘“smtp”’ in c:\archivos de programa\apache group\apache2\htdocs\conect3.php on line 4

en mi compañia hay servidor de smpt o ESMTP no se kual sea la diferencia, y he modificado todas las variables con el servidor y todas esas cosas y no me llega nada a mi correo…

saludos.

Jonathan
Publicado: 01/11/2007 12:40 am

oooo ya vi porque ciudado compañeros observen ke al kopiar el kodigo las comillas son ” y deben de ser “…. supongo es porque se copia el tipo de codificacion del html y debe de ser UTF-8

saludos

albert
Publicado: 05/11/2007 8:45 pm

y para enviar-lo desde flash??como se cargan las variables, igual??

Roberto Ivan
Publicado: 07/11/2007 11:48 pm

Hola amigos tengo configurado igual

$website=”www.dominio.com”;
$subject=”Comentarios”;
$sendto=”ivan_19julio@yahoo.com”;
$fromname=”comentarios”;
$from=”webmaster@dominio.com”;

El formulario dice que el correo fue enviado pero no me llega nada

Saludos

ommaba
Publicado: 19/11/2007 1:36 am

en vez de colocar todos los destinatarios
#
$mail->AddAddress(“destino1@correo.com”,”Nombre 01″);
#
$mail->AddAddress(“destino1@correo.com”,”Nombre 01″);
#
$mail->AddAddress(“destino2@correo.com”,”Nombre 02″);
……………..
………………
#
$mail->AddAddress(“destinon@correo.com”,”Nombre n”);

como se hace para que se conecte a una bd y envie a los n destinatarios??

Jairo
Publicado: 25/11/2007 8:56 pm

Hola quisiera que por favor me explicaras como utilizar el PHPmailer ya que me gustaria utlizar como smtp el de GMAIL. Gracias.

Utlizo WampServer como Servidor local.

unijimpe
Publicado: 25/11/2007 10:04 pm

Jairo, para ello necesitas hacer uso de autentificación. Puedes encontrar mas detalles de como hacerlo en:
http://www.buayacorp.com/archivos/phpmailer-con-gmail/

JACASS
Publicado: 04/12/2007 12:28 pm

Alguien podria postear un zip con todo el formulario y clase,,que yo tengo todo en mi servidor pero no funka..
gracias..

Rafa
Publicado: 20/01/2008 8:00 am

Hola, antes de nada agradecerte la ayuda que prestas a todos.
Yo ya uso phphmailer, sin tener smtp, con una cuenta gmail como se explica en
http://www.buayacorp.com/archivos/phpmailer-con-gmail/
Envio perfectamente (salvo a algunos dominios que deben detectarme como spam), ahora bien por mas que he buscado en los doc de la clase y en internet no he conseguido saber como hacer para en lugar de crear un nuevo mail responder a uno ya existente.
Supongo que sera cuestion de usar el mismo uid, pero no se como.
¿tienes idea de por donde puedo meterle mano?

dblanco
Publicado: 22/01/2008 7:30 pm

tengo dos preguntas:

1º) si enviamos correo masivo en un bucle no puede ser que se sobrepase el tiempo de espera y deje de funcionar la página? qué solución habría?

2º) existe opción de enviar Body en HTML y AltBody tipo TXT, ok. Pero y si sólo queremos enviar en TXT y obviar el HTML?

gracias

unijimpe
Publicado: 22/01/2008 9:36 pm

Hola dblanco, respecto a tus preguntas:

Para evitar que se sobrepase el tiempo de ejecución puedes editar tu archivo php.ini y cambiar la propiedad max_execution_time. La segunda posibilidad es colocar set_time_limit(0) al inicio de tu página. Puedes encontrar mas información en: http://www.php.net/set_time_limit

En el segundo caso solo colocar contenido a la propiedad AltBody y funcionará sin problemas.

jose
Publicado: 29/01/2008 10:41 am

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

$mail2->Body = ”

/* PAGINA*/
body {

(…) TODO EL CSS NECESARIO

(…) EL CORREO

“;

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:

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.

jose
Publicado: 29/01/2008 10:43 am

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.

jhon key
Publicado: 31/01/2008 4:40 pm

jose. si vas a insertar html en una variables hazlo con las comillas simples ejemplo:

print $texto=’

datos
ejemplo

‘;

sino mira como genera este editor el codigo html para enviarlo en el body de un mensaje :

http://www.zapatec.com/website/main/products/editor/demo.jsp#full_editor.html

haz click donde dice html , y veras como genera el codigo.

Joaquin
Publicado: 06/02/2008 12:28 pm

Hola.

Tengo una duda que no soy capaz de resolver.

tengo este codigo:

require(“class.phpmailer.php”);
$mail = new PHPMailer();
$mail->Host = “mail.copycenterdigital.com”;
$mail->From = “comercial@copycenterdigital.com”;
$mail->FromName = “Nombre del Remitente”;
$mail->Subject = “Subject del correo”;
$mail->AddAddress(“copycenter@copycenterdigital.com”,”Tu nombre”);

$body = “Hola amigo“;
$body .= “probando PHPMailer.”;
$body .= “Saludos”;
$mail->Body = $body;
$mail->Timeout=30;
$mail->AltBody = “Hola amigo\nprobando PHPMailer\n\nSaludos”;
$mail->AddAttachment(“images/foto.jpg”, “foto.jpg”);
$mail->AddAttachment(“files/demo.zip”, “demo.zip”);

if ($mail->Send())
{
echo “mail enviado”;
} else
{
echo “fallo en el envio”;
}

De esta forma si el correo se enviara correctamente saldria mail enviado.

Pero no sale ni una sola vez
Ademas no envia el correo claro.

El servidor SMTP es como indicabas aunque no se si es correcto. Los archivos estan en mi pc y los proceso mediante el servidor apache que instala wamp, pero como digo, nunca sale bien.

Ya he probado muchas cosas y nada me funciona.

Necesito ayuda por que esto me costar un dolor.

Muchas gracias.

paulo riquelme
Publicado: 23/02/2008 11:09 pm

bueno acabo de encontrar este mensaje y tratare de implementarlo aunque a decir verdad dificil lo veo.

para mi esto es japones.

gracias y ya les comento como me ha resultado

stella
Publicado: 04/03/2008 5:45 pm

hola he usado esta funcion para envio de mail y funciona a las mil maravillas.
pero tengo que enviar este mail dos veces a la empresa con el remitente del nombre del cliente y al cliente con el remitente del mail de la empresa
como puedo hacer esto???
usando la misma funcion de arriba?
gracias

Rodrigo Inostroza
Publicado: 07/03/2008 9:20 am

Estoy haciendo el codigo… me envia el mail pero no me adjunta los archivos… un solucion por favor. este es el codigo:

Host=”localhost”;
$mail->AddAddress(“roinostroza@hotmail.com”, “Rodrigo Inostroza”);
$mail->Subject = “Formulario Solicitud Gráfica”;
$mail->Body = “Enviado Por “.$_POST['nombre'].” para la Empresa “.$_POST['cliente'];
$mail->AddAttachment(‘home/keyadmin/public_html/formulario/formulario.pdf’, “formulario de “.$_POST['nombre'].”.pdf”);

if(!$mail->Send())
{
echo “Error en el envio del email”;
exit;
}
echo “El Mensaje se envió correctamente”;
?>

me sale repetidas veces que se envió correctamente pero no adjunta el archivo.

sol
Publicado: 20/04/2008 12:12 pm

Hola unijimpe, ya descarge PHPMailer, pero soy una ignorante con todo lo que he leido y necesito ayuda pasito a pasito, por favor ayudame es muy importante para mi lograr enviar e-mail masivos, va a ser la base de sustento para toda mi familia. gracias por compartir tus conocimientos.

Javier
Publicado: 15/05/2008 5:03 pm

realmente como puede haber gente tan bestia y necia, que intentan hacer cosas mas avanzadas en php sin siquiera saber usar el echo; realmente es indignante ver gente tan animal. que no saben ni lo que van a hacer y encima se enojan al ver que no les sale..si quieres aprender php metanse a un curso.. o si no imprimanse esto…

$acum=1;
while($acum>1000){
echo “vayanse al carajo”;$acum++;}

harold lazo
Publicado: 16/05/2008 8:41 am

Hola, y si quiero que en ese mail que voy a enviar salga de encabezado una imagen, como haría? no un dato adjunto si no una imagen que salga con el mensaje, gracias

marcela
Publicado: 06/06/2008 9:46 am

ola no olviden habilitar la extension openssl en php si estan en wamp es mas facil

Edixson
Publicado: 12/06/2008 1:17 pm

Javier eres un perfecto idiota, quien te crees q eres para ofender a los demas, sino kieres ayudar simplemente no te metas. Por cierto se nota q haz practicado mucho esa funcion xD…

Elena
Publicado: 13/06/2008 5:39 am

Mi duda es como poder insertar el Css de la página a enviar para que lo reconozcan tanto gmail como hotmail. He probado tanto insertar directamente en la cabecera los estilos como con enlace al archivo Css pero no lo reconoce.
Agradecería si pudieraís solucionarme el problema. Gracias.

Enviar email multiple con PHP » unijimpe
Publicado: 23/06/2008 12:37 am

[...] la necesidad de enviar email a una lista de correo, esto lo podemos hacer utilizando la librería PHPMailer el cual nos permite enviar emails con algunas opciones avanzadas para este tipo de [...]

Juamir
Publicado: 26/06/2008 11:56 am

Buenas, estoy probando esta función ya que necesito hacer una prueba para la universidad de un formulario que envíe un archivo adjunto a una dirección de correo. Hasta lo que he visto lo puedo hacer el problema esta en que no tengo el control del directorio donde corre PHP, y no hallo como instalar la función en la pag http://phpmailer.codeworxtech.com/install.html dice lo siguiente:

If you do not have control of the include directory and you are running PHP 4.0 or higher you can use this function to set it to the path of your files:

ini_set(“include_path”, “.:/path/to/phpmailer/dir”);

Or this:

$mail->PluginDir = “/path/to/phpmailer/dir”;

Lo que no comprendo es donde coloar esas rutas. ¿podría ayudarme?


[...] la necesidad de enviar email a una lista de correo, esto lo podemos hacer utilizando la librería PHPMailer el cual nos permite enviar emails con algunas opciones avanzadas para este tipo de [...]

agustin
Publicado: 01/08/2008 11:10 am

exelente ejemplo, pero tengo la duda de como hacer que en vez de adjuntar la imagen, esta aparezca en el encabezado del mensaje, la idea es poner un logo en el cuerpo del mensaje

Enlaces de la semana 2 — Viciao2k3
Publicado: 03/08/2008 2:37 pm

[...] Introducción a PHP Mailer [...]

Mari
Publicado: 08/08/2008 12:19 pm

hola tengo un problema para enviar correos a hotmail,yahoo,gmail,etc. Supuestamente los correos si se estan enviando por que no me muestra ningun error de envio, el problema esta en que no llegan al destino, podrian decirme cual seria el motivo el por que no los envia, estoy utilizando las clases PHPMailer y SMTP.

ayundeme solo tengo una semana para resolverlo estoy en estadìas.
gracias.

si puedes ayudarme mi correo es
idem_abril@hotmail.com

Pedro
Publicado: 02/09/2008 10:07 am

Buenas!, muy buena la info… Pero ando necesitando algo mas… o sea, necesito poder manejar los mails rebotados..como para dejar una marca de a cuales clientes no les pude mandar el mail… Hay alguna solucion “magica” para esto???

Gracias

Roberto
Publicado: 04/09/2008 4:28 pm

Buenas!!, soi nuevo utilizando esta clase de PHPmailer, y no puedo mandar los correos, ya que no tengo mucho conocimiento de eso de SMTP tengo este codigo:

require(“class.phpmailer.php”);
$mail = new PHPMailer();
$mail->Host = “guanajuato.gob.mx”;
$mail->From = “jreynoso@guanajuato.gob.mx”;
$mail->FromName = “Neri”;
$mail->Subject = “Prueba”;
$mail->AddAddress(“rc.rodriguez.f@linuxmail.org”,”Carlos”);

$body = “Hola amigo“;
$body .= “probando PHPMailer.”;
$body .= “Saludos”;
$mail->Body = $body;
$mail->AltBody = “Hola amigo\nprobando PHPMailer\n\nSaludos”;
$mail->AddAttachment(“images/foto.jpg”, “foto.jpg”);
$mail->AddAttachment(“files/demo.zip”, “demo.zip”);
$mail->Send();

aver si m pueden ayudar


[...] PHPMailer es una librería que nos permite enviar emails con algunas opciones avanzadas para este tipo de labores. [...]

Obelix
Publicado: 17/09/2008 5:32 pm

Buenas!!! Ando con un problemita, quisiera ver si me pueden ayduar…
Tengo esta libreria funcionando correctamente, y estoy usando una cuenta de gmail… tengo una aplicacion donde debo enviarles informacion a todos mis clientes… por lo tanto, puedo llegar a mandar cerca de 1000 mails (de a uno, ya que son personalizados)…. pero despues de los 400 o 500 mails (que van llegando bien) me tira este mensaje:
Mailer Error: Language string failed to load: data_not_accepted
en TODOS los mails.. o sea, que no envia ninguno mas…

Me da la sensacion de que Gmail es quien me bloquea, pero no estoy segurro de ello… por otro lado, quize configurar un servidor SMTP local, pero me es imposible configurar el DNS, por lo que el mail llega al servidor, pero nunca sale de ahi….

Alguien me puede dar una mano??? Grax!

Obelix
Publicado: 17/09/2008 6:10 pm

Efectivamente…. Gmail me bloqueo la cuenta por 24 horas, por excederme…

Pero sigo sin poder resolver el tema del DNS para el servidor local de SMTP

unijimpe
Publicado: 17/09/2008 8:08 pm

Obelix, según parece Gmail te ha bloqueado por enviar muchos emails en tan poco tiempo, a eso se le llama spam. Por otra parte la solución a este problema es utilizar un servidor SMTP de forma local, para lo cual no necesitas configurar ningún DNS, solo se configura DNS cuando quieres que mediante una dirección en Internet accedan a tu maquina local, lo cual no es tu caso.

Obelix
Publicado: 17/09/2008 11:05 pm

Gracias por la respuesta… lo de Gmail era “una prueba”… tenia que medir cual era el limite… y lo encontre…

Con respecto al servidor SMTP… no se que onda.. debo ser medio manko… instale ya varios y no hay caso… el mail entra la servidor… lo veo en la cola de mensajes, pero de ahi no sale… No se como solucionarlo eso…

Saludos

PhantomDark
Publicado: 23/09/2008 1:00 pm

Estoy viendo si me funciona pero parece que no

gn
Publicado: 24/09/2008 10:38 am

hola , quisiera saber si me pueden orientar para mandar mails con php
pero no con adjuntos, necesito que el html este incrustado en el cuerpo de mail , para que cuando se abra el mensaje se vea la imagen y el texto al mismo tiempo

Fernando
Publicado: 16/10/2008 10:02 am

Hola unijimpe sioy novanto en la programacion de php pero sabes estoy intentado utilizar el phpmailer pero loque tengo es un formulario qu eya tiene el correo en una etiqueta esta toma la direccion de uan base de datos y por ende yo deberia enviar ese correo al mail que fue selecionado no a uno preestablecido si fuera posible algun ejemplo o un lagar dodne lo pueda mirar saludos y gracias por la ayuda


[...] la necesidad de enviar email a una lista de correo, esto lo podemos hacer utilizando la librería PHPMailer el cual nos permite enviar emails con algunas opciones avanzadas para este tipo de [...]

Hector
Publicado: 28/11/2008 11:11 pm

esta muy bueno el manual lo unico que te falta es decirle al phpmailer que lo envie por smtp para esto tienes que agregar la variable

$mail->Mailer = “smtp”;

jorgete
Publicado: 29/11/2008 5:11 pm

puuucha necesito ayuda… hice una tarjea de saludos y me llega como spam… que debo hacer.. este es el cod. php.. las fotos estan vinculadas

<?
$cabeceras = “From: $mail\r\nContent-type: text/html; charset=UTF-8\r\n”;
$codigo = ‘

Vader is a Hater – Star Wars Fan Art

‘.$noticia2.’

‘;
if(mail( $mail , “Tarjeta de Navidad”, $codigo, $cabeceras)){
print “”;
}

else
{
return $fallo;
}
?>

jorgete
Publicado: 29/11/2008 5:14 pm

veo que no muestra el cod. entero.

Nacho P
Publicado: 16/12/2008 5:37 pm

Hola a todos, Unijimpe o cualquiera que pueda resolver el misterio; existe un problema sin solución aún y a algunos de nosotros como Mari, JuanAn, Davinia y Guzzilu parece nos tiene quietos. Podemos enviar correos solo a cuentas registradas en el servidor local, no podemos enviar correos a cuentas alojadas en servidores externos como hotmail, gmail, yahoo o cualquier otro.
Por favor, si alguien tiene la respuesta, o algunos de los acá nombrados hallan podido solucionarlo por favor cuentenos como lo hicieron, es de mucha utilidad para nosotros saberlo.
Muchas Gracias y ojala algun genio nos de la respuesta ;)

Javier
Publicado: 17/12/2008 6:17 am

Hola, yo acabo de enviar un mail utilizando el sencillo ejemplo del tutorial a una cuenta gmail y me llegó perfectamente, y lógicamente a cuentas locales también…

Alex
Publicado: 20/12/2008 10:13 pm

Hola Yo tengo una pregunta haber si alguien puede responderme, gracias de antemano.
Mi pregunto es, Si yo pongo la opcion TO, CC, CCO, hasta cuantos mail me soportaria 50? 500? 1000? y si es por cada seccion un maximo me gustaria saber cuanto, por ejemplo el CCO cuantas hasta cuantos mail me soportaria. espero haber sido claro. gracias…

Jamarchi
Publicado: 09/01/2009 3:12 pm

Jejeje iba hacer la misma pregunta que hizo Alex.

fernando
Publicado: 16/01/2009 8:18 pm

hola amigo.. de casualidad saves de algun hosting gratuito que permita en envio por medio del mailer?
si puedes contestarme por mail. te agradeceria.

Miguel Monroy
Publicado: 13/02/2009 10:25 am

Muchas gracias, lo he adapatado para usarlo con mi servidor de correo, me ha funcionado muy bien gracias a tus explicaciones y ejemplos.

Jamarchi
Publicado: 16/02/2009 1:01 pm

Hola Gente… ya hice que funcionara sin problema, pero lo que quiero hacer es ponerlo en un formulario, el codigo es este
getFile(‘contents.html’);
$body = eregi_replace(“[\]“,”,$body);

$mail->From = “info@yahoo.com”;
$mail->FromName = “Nombre”;

$mail->Subject = “Prueba de email”;

$mail->AltBody = “To view the message, please use an HTML compatible email viewer!”; // optional, comment out and test

$mail->MsgHTML($body);

$name = $_POST['name'];
$email = $_POST['email'];
$bcc = $_POST['bcc'];

$mail->AddAddress($_POST['email']); // dirrecciones a las que se va a mandar el mail
$mail->AddBCC($_POST['bcc']);

//$mail->AddAttachment(“images/bolante.jpg”); // Archivo adjuto
$mail->AddEmbeddedImage(“images/bolante.jpg”, “Publiwebcr.com”, “images/bolante.jpg”);
$mail->Body = ‘Embedded Image: Here is an image!’;

if(!$mail->Send()) {
echo “Mailer Error: ” . $mail->ErrorInfo;
} else {
echo “Message sent!”;
}
?>

Pero tengo dos problemas
1. No se despliega la imagen, osera se manda pero queda como archivo adjunto y lo que deseo es que se despliegue en el mail, se puede hacer?
2. me muestra este error Parse error: syntax error, unexpected $end in /home/comepris/public_html/envio/correo3.php on line 152″ pero mi codigo no tiene 150 lineas, no se si me puedas ayudar

Gracias

daniel
Publicado: 24/02/2009 2:12 pm

necesito enviar mails a hotmail con php!!!! y con phpmailer llega como spam! q hago?

Augusto
Publicado: 01/03/2009 9:09 pm

Hola jamarchi… ojala puedas leer esto. No uses $mail->MsgHTML($body)
en su lugar usa la linea:
$mail->Body = $body;
A mi tambien me paso que con MsgHTML no llegan las imagenes, lo mas de raro, ni idea por que… pero con la otra funcion si llegan perfecto… Espero le sirva…

Fabian
Publicado: 07/03/2009 5:25 pm

He probado esta funcion y funciona perfectamente.
Pero tengo un pequeño inconveniente y es que los mail tardan mucho en llegar, alrededor de 20 o 30 minutos luego de enviarlos.
¿Esto se puede configurar desde PHPMailer? ¿O solo desde le servidor?
El envio lo realizo desde un servidor como localhost.

Gracias,
Fabian

unijimpe
Publicado: 07/03/2009 6:11 pm

Fabian eso el envío depende del servidor SMTP que estes utilizando, algunos servidores despachan automaticamente lo emails, otros esperan a tener una cierta cantidad para hacer el envío y otros lo hacen cada cierto tiempo, esto es para optimizar recursos.

Daniel
Publicado: 31/03/2009 12:35 pm

Hola todos bueno tengo un problema quisiera ingresa por formulario los correos(100). pero el script de php mailer me permite mandar a 1 solo entonces ingrese al codigo PHP (class.phpmailer.php) y quise modificar algo pero eso variaria en lo que quiero osea mandar varios correos a la vez, derrpente se puede agregar un bucle for?

este es el original:
function AddAddress($address, $name = “”) {
$cur = count($this->to);
$this->to[$cur][0] = trim($address);
$this->to[$cur][1] = $name;
}

Utilizar Akismet con PHP » unijimpe
Publicado: 31/03/2009 9:10 pm

[...] de correo (Para leer acerca del envío de correo con PHP pueden leer Envíar E-mail con PHP o Introducción a PHPMailer) con lo cual nuestro código sería de la [...]

Willian Torrealba
Publicado: 07/04/2009 10:28 am

Hola, saludos.!
Quisiera que me explicara en donde tengo que guardar la libreria phpmailer.

Darks
Publicado: 14/04/2009 10:38 am

hola a todos es la primera vez q hago esto en php de enviar emails, tengo infinitum como conexion en el host le puse smtp.prodigy.net.mx, ahora mi duda es en el archivo de class.phmailer.php tengo q ponerle el usuario y contraseña de una cuenta de prodigy o de cualquiera porq cuando lo pruebo me manda este error: SMTP Error: Could not connect to SMTP host

Darks
Publicado: 14/04/2009 10:40 am

se me olvidaba decirles q lo estoy haciendoi de manera local no he modificado nada en el php.ini todo lo declaro en el script donde envio el correo

Rodrigo
Publicado: 15/04/2009 8:44 pm

Che, no se podra adaptar el cuerpo del mensaje con algún WYSIWYG ??

Me interesa saber al respecto.

Gracias =D

gilberto hernandez
Publicado: 16/04/2009 5:54 am

Hola amigo, quisiera saber si pueden ayudarme. Al usar este script, si el destinatario es gmail, el correo es recibido como spam. puedes decirme por que ?, gracias. Gilberto

require(“./class.phpmailer.php”);
$mail = new PHPMailer();
$mail->Host = “mail.higuerote.com”;

$mail->From = “info@higuerote.com”;
$mail->FromName = “higuerote punto com”;
$mail->Subject = “este el el subject del correo”;
$mail->AddAddress(“inaboxca@hotmail.com”,”el de hotmail”);
$mail->AddAddress(“gilbertohm@gmail.com”,”el de gmail”);
//$mail->AddCC(“usuariocopia@correo.com”);
//$mail->AddBCC(“usuariocopiaoculta@correo.com”);

$body = “Hola amigo“;
$body .= “probando PHPMailer.”;
$body .= “Saludos”;
$mail->Body = $body;
$mail->AltBody = “Hola amigo\nprobando PHPMailer\n\nSaludos”;
$mail->AddAttachment(“test/test.png”, “foto.jpg”);
//$mail->AddAttachment(“files/demo.zip”, “demo.zip”);
$mail->Send();

1000VA
Publicado: 27/04/2009 12:46 pm

Hola!!! Lo mio no es una pregunta, es un agradeciemiento por la buena explicacion…Estoy empezando con PHP practicamente y el detalle de la clase esta me parecio muy explicativo y hoy estare probandola. Luego comentare.

Creo tambien que me veras seguido por aqui ya que estoy volviendo a programar despues de mucho tiempo y seguramente surgiran dudas.

Muchas gracias por tu blog.

Curenay
Publicado: 04/05/2009 5:28 pm

Usen la aplicación http://swiftmailer.org en vez de phpMailer es mas nueva, rapida y configurable.

Suerte

hola
Publicado: 07/05/2009 2:22 pm

Hola,
solo tengo un problema con el codigo.

envia perfectamenmte correos a todas las cuentas y directo a la badeja de entrada, eso es porque pongo mi identificacion en el codigo, el unico problema es que debo enviar por ejemplo 10 correos uno por uno y a cada usuario le llegan 10 correos si son 20 email llegan 20 correos por cuenta, etc.

Alguna forma de recetiar el arreglo AddAddress?

lo puedo arreglar, pero la forma que me queda no me sirve, ya que por cada correo que envie, me debve enviar un mensaje que el mail se envio correctamente a mail@mail.com o el mensaje no se envio a mail@mail.com
por lo tanto en un bucle for debo meter el $mail->AddAddress(); y el $mail->Send();
por eso necesito que al enviar el primer mail AddAddress() se resetee.

Rodrigo (soy hola)
Publicado: 07/05/2009 2:26 pm

probe con unset y no me funciona.

Rodrigo (soy hola)
Publicado: 07/05/2009 2:28 pm

como puedo resetear la variable $mail->AddAddress(); ????

probe con unset pero no hace nada $mail->AddAddress sigue con todos los datos

Rodrigo (soy hola)
Publicado: 07/05/2009 2:34 pm

ya lo he solucionado con $mail->ClearAddresses();

como puedo resetear la variable $mail->AddAddress(); ????

probe con unset pero no hace nada $mail->AddAddress sigue con todos los datos

Venancio
Publicado: 13/05/2009 2:38 pm

estoy orobando este formulario para ver si lo puedo poner en mi web graxX…
saludos

FernandoV
Publicado: 09/06/2009 2:42 am

Tengo este script para enviar facturas por correo con php mailer,me manda el correo pero no personifica las facturas de tal manera que me envia todas a todos, le agradecería su ayuda:
$link = mysql_connect(“localhost”,”xxx”,”xxxx”);
mysql_select_db(“xxxx”);
$consulta = “Select * from factura2,empresas where id_factura between ‘$id_factura’ and ‘$id_factura1′ AND empresas.id_empresas=factura2.id_empresas”;
$results = mysql_query($consulta, $link);
$tot=mysql_num_rows($results);
$x=0;
$pdf=new FPDF();
while($row=mysql_fetch_array($results))

{
.Aquí viene el sript de pdf….
//Se crea el formato de correo a Enviar
$mail=new PHPMailer();

$mail->Helo = “www..com”; //Muy importante para que llegue a hotmail y otros
$mail->SMTPAuth=true;
$mail->Host=”.com”;

$mail->Username=”xxx@xxxx.com”;
$mail->Password=”";
$mail->From=”";
$mail->FromName=”";
$mail->Timeout=60;
$mail->IsHTML(true);

$mail->AddAddress($row["email2"],$row["nombre"]);
//Enviamos el correo
//Puede ser Hotmail
$mail->AddCC(“”);
$mail->Subject=’tu asunto’;

//Creamos el documento como String para poder enviarlo como archivo adjunto
$doc=$pdf->Output(‘factura /’ .$row['id_factura'].’/',’S');
$mail->AddStringAttachment($doc, ‘factura /’ .$row['id_factura'].’/', ‘base64′, ‘application/pdf’);
if($mail->Send())
{
echo “Mail enviado exitosamente”;
}else{
echo “Correo $to no enviado”;
}

$mail->ClearAllRecipients();

}

cacho
Publicado: 29/06/2009 2:20 pm

Hola muchas gracias era justo lo que necesitaba porque con mail() tenía problemas con la codificación. Ya que en gmail / hotmail / outlook los mails se ven perfectos…pero en Squirrelmail no entraban como HTML o los mismos no mostraban acentos o ñ. Saludos !

Envíar HTML con PHPMailer » unijimpe
Publicado: 04/07/2009 2:46 pm

[...] PHPMailer es un librería muy popular para hacer el envío de emails con PHP de manera sencilla, los principios básicos de esta librería la hemos comentado en Introducción a PHPMailer. [...]

jhonattan
Publicado: 26/07/2009 3:50 am

Hola, muy elaborado tu post, pero la verdad creoq ue voy a volverme loco con este phpmailer no sé cómo diablos haces, por favor te digo lo que debo hacer y me corriges.
Primero que todo tengo un hosting de pago, entonces subo ahí toda la carpeta que se descomprime cuando bajo el phpmailer? donde pongo el php mail?? o cómo hago para luego mandar los correos, o sea soy renovato en esto y como usaria uno para utilizar el correo de gmail???

Muchas gracias

unijimpe
Publicado: 26/07/2009 10:37 am

Hola jhonattan, lo que tienes que hacer es descargar los archivos de ejemplo que puse al final del post (http://www.box.net/public/djjtro6oii) luego copias el contenido del archivo y finalmente editas el archivo mailphp.php donde debes colocar tu email como la dirección del destinatario.

jhonattan
Publicado: 29/07/2009 12:36 am

O sea que debo subir, todos los archivos del rar a mi hosting de pago, modificando sólo el mailphp con mis datos, entendí bien o mi ignorancia es persistene? Gracias por tu paciencia.

bru
Publicado: 29/07/2009 2:23 pm

hola, estoy construyendo una pagina, pero no logro enviar informacion de contacto a mi mail. quiero que me ayudes, que debo configurar o instalar para que funcione. mi pagina se hospeda en “triara”, y no se que hacer. gracias por tu ayuda

Elkin Caceres
Publicado: 02/08/2009 9:21 pm

hola que tal, tengo un formulario que lo unico que va a aparecer para llenar es el nombre de la persona que envia el correo, el correo y campo para adjuntar el archivo. necesito que em envien un archivo de excel quepreviamente hayq ue descargar. te agradeceria puedas indicar como puedo hacer para que el archivo que alli se adjunta llegue a mi correo… gracias

n1n3s
Publicado: 19/08/2009 5:21 pm

Hola, necesito ayuda para enviar mails con datos adjuntos.
ya baje los archivos de la pagina, modifique el puerto para la salida de correo en el class.phpmailer.php (porque ese es el puerto por el que salen los correos de la empresa) modifique el archivo mailphp.php y me quedo asi:


$mail->Mailer = "mail";
$mail->Host = "mail.mexicowaterjets.com.mx";
$mail->From = "zcoot@mexicowaterjets.com";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Subject del correo";
$mail->AddAddress("zuriana@gmail.com","Yo");

$body = "Hola amigo";
$body .= "probando PHPMailer.";
$body .= "Saludos";
$mail->Body = $body;
$mail->AltBody = "Hola amigo\nprobando PHPMailer\n\nSaludos";
$mail->AddAttachment("images/foto.jpg", "foto.jpg");
$mail->AddAttachment("files/demo.zip", "demo.zip");

if ($mail->Send()){
echo "enviado";
}
else{
echo 'no enviado';
}

pero siempre me dice no enviado, tengo que modificar algo mas?
ya probe tambien ponerle esto:

$mail->Mailer = "smtp";

pero tampoco queda, me podrian ayudar?? por favor.
Estoy usando el php 5.2
y el wampserver 2.0 para lo del servidor.

Cristian
Publicado: 25/08/2009 7:11 am

No puedo hacer funcionar esta funcion: tengo un servidor SMTP de nombre 1st SMTP Server, y no me anda la cosa, nose si acepta las direcciones de correo q le estoy poniendo:
From: cecristian@yahoo.com.ar y despues el destino: cecristian@yahoo.com.ar ( utilizo mi direccion para comprobar la cosa)..q estoy haciendo mal..saludos y gracias

Cristian
Publicado: 25/08/2009 7:43 am

no hay forma q mi servidor de SMTP envie el correo, el script en PHP esta bien pues lo ejecuta a la perfeccion pero mirando el log del servidor, se puede ver que trata de enviar el mail y no lo logra, sale un error. Jamas sale de mi pc..tengo intalado php+mysql+apache2.2+ 1st SMTP server y no logro hacer q funcione la cosa. mi php.ini esta configurado d la siguiente forma:
[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com
sendmail_from = cecristian@yahoo.com.ar

y he probado de todo pero jamas logra salir de mi pc..sera problemas con la cuenta de correo q pongo en el campo FROM?…cualquier ayuda me viene al pelo….soy medio del todo re navo con esto..asi q d ser posibles sean simples y explicativos estilo mata burros…gracias.-

Gabriel
Publicado: 30/08/2009 6:59 pm

Hola necesito ayuda eh creado este formulario para mi web::

Sin título 1

.style4 {
color: #FF0000;
}
.style5 {
text-align: center;
border-style: solid;
border-color: #C0C0C0;
background-color: #C0C0C0;
}
.style6 {
text-align: center;
}
.style7 {
font-weight: normal;
color: #FF0000;
}

Formulario de registro
Ingresa tus datos aquí consultándonos tus dudas o problemas y a la
brevedad nos comunicaremos contigo.

Nombres

Apellidos

Dirección

Teléfono

E-mail

Mensaje

Volver a pagina principal.
http://www.solucionesinformaticas.uy.gs

Quisiera saber si alguien podria ayudarme para que cuando un usuario llene el formulario automaticamente al enviar me llegue a mi correo de hotmail los datos.. pero que lo envie utilizando mi cuenta de gemail se entiende gente espero alguna solucin muchas gracias como hostin toy usando miarroba avilite el php.

Gabriel
Publicado: 30/08/2009 7:01 pm

Sin título 1

.style4 {
color: #FF0000;
}
.style5 {
text-align: center;
border-style: solid;
border-color: #C0C0C0;
background-color: #C0C0C0;
}
.style6 {
text-align: center;
}
.style7 {
font-weight: normal;
color: #FF0000;
}

Formulario de registro
Ingresa tus datos aquí consultándonos tus dudas o problemas y a la
brevedad nos comunicaremos contigo.

Nombres

Apellidos

Dirección

Teléfono

E-mail

Mensaje

Volver a pagina principal.
http://www.solucionesinformaticas.uy.gs

Gabriel
Publicado: 30/08/2009 7:01 pm

no sale bien el codigo al enviar el comentario

Victorio Guerrero
Publicado: 07/09/2009 11:26 am

Tengo que enviar dos correos seguidos a diferentes direcciones, uno al visitante de la Web y otro al propietario de la misma, ambos correos son diferentes, lo que me esta ocurriendo ahora es que al segundo correo se le añade la direccion de envio del primero.

Un saludo.

Pablo Cortez
Publicado: 07/09/2009 5:57 pm

He encontrado este código para insertar imagen

$mail->AddEmbeddedImage("/ruta/al/archivo/logo.jpg", "logo", "logo.jpg"); //Imagen embebida en el mensaje

Freddy
Publicado: 10/09/2009 11:48 am

Trato de configurar phpMailer en un emulador de PHP con apache y mysql ya que mi pagina Paginas Amarillas y Guia Telefonica del Ecuador se encuentra sobre windows y usa asp.net y no logro enviar ningun email y no muestra error alguno.

unijimpe
Publicado: 10/09/2009 10:27 pm

Freddy, para hacer funcionar PHPMailer es necesario tener instalado PHP y un servidor SMTP el cual hace el envío de correos. Si tu servidor ya tiene un servidor SMTP no es necesario instarlarlo.

martin
Publicado: 01/10/2009 7:47 am

hola quisiera saber si este phpmailer podria ser configurado con hotmail oh live porque eh tratado pero no eh podido no se si me podrian poner un ejemplo quiero mandar correos con mi cuenta de hotmail configurado con php mailer se puede oh no se puede hacer eso eh buscado mucha informacion por todos lados sobre eso y al parecer hay muy poco solo se habla de gmail bueno me gustaria saber eso nada mas saldos gracias bye.

martin
Publicado: 01/10/2009 8:56 am

como seria este mismo codigo pero que funcione con hotmail se puede?
Host = "localhost";
$mail->From = "unijimpe@gmail.com";
$mail->FromName = "Nombre del Remitente";
$mail->Subject = "Subject del correo";
$mail->AddAddress("tucorreo@email.com","Tu nombre");

$body = "Hola amigo";
$body .= "probando PHPMailer.";
$body .= "Saludos";
$mail->Body = $body;
$mail->AltBody = "Hola amigo\nprobando PHPMailer\n\nSaludos";
$mail->AddAttachment("images/foto.jpg", "foto.jpg");
$mail->AddAttachment("files/demo.zip", "demo.zip");
$mail->Send();
?>

Miguel
Publicado: 01/10/2009 1:19 pm

si pongo
$obj_mail->Body = $mensaje;
$obj_mail->AltBody = $mensaje;

como diferencia si el cliente mail soporta html o no

saludos

flequito
Publicado: 16/10/2009 3:22 am

como puedo limitar a que la gente pueda enviar solo hasta 2 megas y si lo superan que les salga un mensaje de error como… “su archivo supera los 2 megas… intentelo nuevamente
gracias gente!

Izr
Publicado: 22/10/2009 9:25 pm

muy interesante, he intentado hacerlo pero cuando intento enviar dos archivos adjuntos solo envía el primero! he buscado mil formas porque necesito enviar mas de un archivo, ¿estás seguro que funciona como lo tienes ahí?

EDUARD JIMENEZ LOPEZ
Publicado: 27/10/2009 4:48 pm

Hola! para enviar mas de un coreo en el mismo script teneis que cambiar la palabra requiere(“class.phpmailer.php”) por requiere_once(“class.phpmailer.php”), asi dejará acceder al class mas de una ver por scripts! Ideal para hacer bucles o enviar varios emails en general!

Salut compañeros!

claudia
Publicado: 11/11/2009 12:12 pm

hola, quisiera saber si dan cursos personales como para aprender a utilizar el envio de mails mediante php script, duracion y costo.
gracias
Claudia

Dreamer
Publicado: 22/11/2009 1:14 pm

como loharia funcionar desde mi localhost, quisiera hacer pruebas desde mi pc sin necesidad de subirlo al servidor.

gabriel
Publicado: 24/11/2009 1:17 pm

como evito que este tipo de correo lleguen como spam a los destinatarios?

Marcos
Publicado: 27/11/2009 4:50 am

Tengo un script que funciona perfectamente, lo qu enecesito es enviar a multiples destinatarios y no se:

1- si es mejor un bucle por correo
2 – insertar tantas líneas tipo: $mail->AddAddress(“nombre@correo.com”); con un while desntro del envio.

Si es mejor la 2, cómo he de hacerlo? he hecho esto:

$correos = explode( “;”, $afi['correo']);
reset($correos);
while (list($clave, $valor)=each($correos)) {
$mail->AddAddress(“$valor”);

}

y solamente me envia un mail, el primero de los 6000 de la lista (el campo $afi['correo'] puede tener , por persona, varios correos separados por ” ; “.

Si alguien me puede ayudar pleaseeeeeeeeeeeeeeeeeeeeee

Gracias

sandra
Publicado: 27/11/2009 6:57 am

Hola, una ayuda

necesito
hacer un array con esto o un bluce para enviar
$direccion1=$_POST['mail1'];
$direccion2=$_POST['mail2'];
$direccion3=$_POST['mail3'];
$direccion4=$_POST['mail4'];
$direccion5=$_POST['mail5']
usando
$mail->AddBCC($direccion5);

alguien me puede dar un ejemplo.

gracias
usando

sandra
Publicado: 27/11/2009 10:01 am

Hola, de nuevo ya solucione lo de varios emial de forma cute pero funciona.

Gracias!!!
Ahora debo validar con la Bdd para que no envie a mail que constan en ella, pero eso ya es PHP SQL pero sia lguienq ueire darme una ayuda sera bien recibida !

Seba
Publicado: 17/12/2009 1:54 am

Descargo los archivos… cambio el mail de destino… subo a mi host… y me dice esto

Fatal error: Call to a member function on a non-object in

Porque me dice eso???

A nadie le sale esto… solo ami… porque si no hago nada raro…?

me ayudan?

Seba
Publicado: 17/12/2009 10:03 am

No me ayuda nadie?

De verdad me gustaria hacer funcionar esto…

por favor alguien que me de una mano y lo agradecere toda la vida

Seba
Publicado: 17/12/2009 3:48 pm

unijimpe me das una mano?

Seba
Publicado: 17/12/2009 11:04 pm

No quiero ser pesado pero por favor alguien

unijimpe
Publicado: 17/12/2009 11:13 pm

Seba, publica el error que te sale al probar el script, has copiado solo una parte por eso no puedo identificar el problema que tienes.

Claudia
Publicado: 09/01/2010 3:54 am

mira, utilizo muy bien phpomailer, pero solo envia bien a ciertos correos, pero a los de hotmail, yahoo o gmail, no envia…y algunos otros mas, solo me envia a los mismos dominios que yo tengo alojados en el mismo server al parecer, el error me dice k no fue entregado a ese recipient :SMTP Error: The following recipients failed: elcorreo@hotmail.com y asi con yahoo, gmail y algunos otros corporativos…ya puse los ultimos scripts de phpmailer y pues sigue marcando ese mismo error.

muchas gracias!!

Claudia
Publicado: 09/01/2010 6:09 am

bueno, ya solucione el problema de pork no enviaba a hotmail, yahoo, gmail, etc.. les dejo el link con el archivo comprimido para quienes tengan luego ese lio…espero lo utilzen bien y se los pasen a otras personas mas…

mi sistema maneja una mini aplicacionsita con base de datos, que guarda a donde se envio el correo, quien lo vio, quien lo rechazo y cual no se envio correctamente. igual anexo la estructura de la base de datos. Esta aplicacion envia boletines graficos (una imagen del tamaño que sale la que viene en el archivo) asi que luzcanse haciendo algo graficamente lindo.

el link para descargar esto es : http://www.lovemedia-studios.com/correos/phpmailer.zip

en la carpeta includes/ estan los archivos .php que hacen que funcione el envio (phpmailer, class.smtp), de igual forma esta el archivo conexion.php que ahi es donde configuraran para poder conectar a la base de datos y que ahi se almancen los correos a los que les han enviado y les quede como historico….

Agrego la estructura d ela base de datos tambien.

de igual forma esta aplicacion tiene acceso via login, usuario y contraseña…que se valida de la tabla usuarios y ahi pueden agregar via mysql mas usuarios y ponerles nivel menor acceso para que no les deje cambiar la imagen del boletin.

solo la primera vez es necesario remplazar la imagen, cuando se entra como administrador (dentro del boletin elegir el option button que dice Cambiar Esta Imagen) y ponerle ademas el link al que quieran que redireccione cuando el usuario o remitente lo vea…y accese, cabe mencionar que este sistemita permite que la imagen ya llegue descargada al remitente y no tener k darle descargar imagen en los lectores de correo electronico. :p

sustituyan en :

includes/

archivo phpmailer.php

solo cambiar lo siguiente : (servidor de correos y puerto)

public $Host = ‘mail.tudominio.com’;

/**
* Sets the default SMTP server port.
* @var int
*/
public $Port = 26;

cabe mencionar que el puerto por default es 25, pero hay servidores de hosting que emplean el 26.

en el archivo class.phpmailer.php (servidor de emails cambiar a tu dominio)

*/
public $Host = ‘mail.tudominio.com’;

y en el archivo class.smtp.php (solo el puerto ya sea 25 o 26)

class SMTP {
/**
* SMTP server port
* @var int
*/
public $SMTP_PORT = 26;

En el archivo conexio.php que esta dentro de includes/ ahi se cambiaran los datos para poder conectar a la base de datos.

en la base de datos se guarda tanto la imagen k kieres enviar como boletin como a los usuarios que has enviado correo. Claro este envia uno a uno pero si alguien lo hace o ajusta para enviar a varias direcciones ala vez…perfecto que me lo pase jeje

en el archivo index.php cambiar (puerto y servidor de correo que es tu dominio en este caso)

$mail->Port = 26;

$mail->Priority = 1;

$mail->Mailer = “smtp”;

//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = “mail.tudominio.com”;

saludos: cualquier duda mi msn es: info@lovemedia-studios.com

Claudia - Nota sobre la solucion PHPMailer
Publicado: 09/01/2010 7:25 am

en caso que les marque error de que no puedo enviar a un determinado correo de hotmail.com, yahoo, etc..

entonces en el index donde viene la linea

//Asignamos a Host el nombre de nuestro servidor smtp
$mail->Host = “mail.tudominio.com”;

cambien el mail.tudominio.com por la IP que tenga su servidor de hosting y volá

:p

Saludines

Claudia - Solucion PHPMailer
Publicado: 11/01/2010 6:29 pm

Chicos, otro tip:

Si les marca luego de una cantidad de mas de 40 correos o 60 enviados el error de que no se puede enviar a un correo, prueben subiendo el Timeout a 200 y usando una validacion de intentos…mas tarde subo la version que corrige ese bug que tiene el phpmailer.

Besitos!

Mauricio Moo Aguilar
Publicado: 20/02/2010 9:37 pm

Saludos unijimpe:
Gracias por el aporte, lo he utilizado usando mi cuenta de gmail y funciona muy bien, sin embargo trate de aplicarlo con una cuenta de correo de mi proveedor de hosting y al tratar de enviar elmail, no muestra ningun error, simplemente una pagina en blanco.
Desconozco si es necesario configurar algo mas…
Espero puedas ayudarme.

Mauricio Moo Aguilar
Publicado: 22/02/2010 9:48 pm

Saludos… me respondo a mi mismo. Espero sirva a alguien mas. Pude resolver el problema de la pantalla en blanco, corrigiendo los datos del servidor SMTP y el puerto del sitio donde tenía hosteada la página. Con los datos correctos, phpMailer funciono sin ningún problema.
Gracias y saludos.

Randal
Publicado: 22/04/2010 11:51 am

Alguien que me ayude. Auxilio, Socorro.
Con php, necesito levantar outlook express, ya con los archivos adjuntos, para que el usuario final, solo ingrese a que destinos va a enviar sus archivos. Como puedo realizar este requerimiento. Si puede ser sin SMTP, mucho que mejor.

Les agradezco toda la ayuda posible.

Erbomba
Publicado: 22/04/2010 1:50 pm

Estoy teniendo un problema con la clase, les cuento:

Todo funcionaba muy bien, y además tenemos dos versiones de la misma web en el servidor, una es la “vieja” la cual funcionaba pero su estilo no era bonito así que decidimos cambiar colores etc…
Una vez acabada la web probamos todo y sorpresa, el formulario no funciona, da error, vamos a la página “antigua” y el mismo error… Subí la página a mi servidor (de mi web) y funcionó perfectamente, además de mis dos servidores locales dónde también funcionó perfectamente.
Por lo tanto mi conclusión es que el servidor puede estar mal, pero es de pago etc… vamos que me huele raro todo esto. Les dejo las páginas para que puedan visitarlas y si saben algo pues ayudarme, gracias

Versión vieja: http://bgsourcing.com/testsite2/sourcing/sourcing.php
Versión final: http://bgsourcing.com/sourcing/sourcing.php
En mi servidor: http://erbomba.zobyhost.com/bg2/sourcing/sourcing.php

PD: Php.mailer no ha sido tocada ;)

Sebastian Camilo
Publicado: 28/04/2010 12:41 pm

amigo me gustaria saber ya descargue el archivo pero no encuentro los archivos q dices o como se usan

Cesar
Publicado: 23/05/2010 4:14 pm

Buenas, estoy tratando de enviar en un ciclo el mismo mail a diferentes correos que estan en un array pero no me envia sino la primera vez y el array tiene 3 posiciones, si me pueden ayudar se los agradecería!

RTBest
Publicado: 25/05/2010 3:33 am

Hola buenas:

Os comento mj problema. Estoy creando una web en la cual se pide un registro por parte de los usuarios. Para realizar el registro se solicita una dirección de correo para enviar la clave de activación. Phpmailer me funciona perfectamente excepto en el envio a correos con dominios con guión . Ex. correo@el-dominio.com.

He intentado varias maneras y no soy capaz.

Gracias

Raúl
Publicado: 22/06/2010 11:23 am

hola, tengo una duda. Quiero crear un pdf en php (con EZPDF) y quiero enviar ese pdf por email (con PHPMAILER) , ¿se puede? ¿cómo podría ser?

¿necesitaría una instrucciones así?


$pdf = new Cezpdf();
...
$mail->AddAttachment($pdf, "pdf de prueba");

Jose Antonio Gonzalez
Publicado: 09/07/2010 9:27 pm

Hola!

El script funciona muy bien, pero a los destinatarios les llega el mail en la carpeta de correo no deseado.

Que puedo hacer para soluciuonar eso?

Muchas gracias.

Saludos

oms
Publicado: 24/08/2010 6:18 am

Hola a todos. Estoy teniendo un problema al intentar implementarlo:

Could not instantiate mail function

A alguien le suena esto de algo? no lo he encontrado en este post por ningun lado.

por favor, cualquier ayuda sera muy agradecida…

1 saludo y gracias!

elo950
Publicado: 24/08/2010 10:44 am

gracias por la info muy buena, me sirvió pa un proyecto :)

mickeyups
Publicado: 01/09/2010 4:52 pm

hola que tal, quisiera saber como enviar email a correos corporativos.
lo que pasa es que estoy realizand una web que requiere el envio de mensajes a empresas q cuentan con webmail corporativos y al usar la funcion mail no puede enviar a estos correos.

Con otros mail si les llega HOTMAIL
Gracias pot todo, tus toturiales son de gran ayuda.
Agradecere tu ayuda

yamatho
Publicado: 20/09/2010 3:07 pm

Hola, he probado el php-mailer en tres diferentes sitios y solo en uno de ellos funciona de manera perfecta, utilize el mismo metodo para los demas sitios y aun asi no funciona, alguien podria ayudarme?

Martin
Publicado: 08/10/2010 10:20 am

tengo el si guiente problema estoy realizando la adjuncion desde una base de datos y si el envio es correcto me debe incrementar el contador

AddAddress($_POST['destino']);
$mail->From = "correo@dominio.com";
$mail->FromName = "Mart";
$mail->Subject = $asunto;
$mail->AddAddress($email);
$mail->AddReplyTo("correo@dominio.com", "Information");
//consulta de informacion
$cnx = conexion();
$sql = "select imagen,contador from imagenes where idimg = '$id'";
$rst = mysqli_query($cnx, $sql);
if (mysqli_num_rows($rst) > 0) :
while($rs=mysqli_fetch_array($rst)){
$img=$rs['imagen'];
$ct=$rs['contador'];
}
endif;

$mail->WordWrap = 50;
//$mail->AddAttachment("imagenes/Koala.jpg");
$mail->AddAttachment($img);
$mail->AddEmbeddedImage("logo.jpg", "logo", "logo.jpg");
$mail->IsHTML(true);
//$mail->Subject = "Asunto del mail";
$mail->Subject = $asunto;
$body = "Mi cabecera ";
$body .= "Mensaje";
$body .=$mensaje;
$body.= "Pagina de donde se envio";
$mail->Body = $body;

$mail->AltBody = "Si el cliente de correo del destinatario no acepta HTML se verá este texto.";

if (!$mail->Send()) {

echo "alert('Se ha producido un error al enviar el correo');";
echo "alert('Mailer Error: " . $mail->ErrorInfo."');";
exit;
}else{
$cont=cont+1;
$q="update imagenes set contador = $ct where idimg = '$id'";
mysqli_query($cnx,$q);
echo "alert('".$img." ". $ct."');";
echo "alert('El correo ha sido enviado con exito');";
}
?>

Cristian
Publicado: 09/10/2010 10:06 pm

Q tal,

Basicamente qusiera saber por q los correos enviados desde php no llegan a cuentas corporativas (en cambio a las de hotmail , yahoo, gmail, etc si llega correctamente). Me imagino q esto le ha pasado a muchas personas y quisiera por favor q me ayuden a corregirlo.

Gracias

jose
Publicado: 13/03/2011 8:36 am

saludos tengo el siguiente problema tengo colocado phpmailer en el servidor pero cuando se ejecuta el scrip no me manda ningun error nisiquiera una confirmacion de envio de correo. se queda en blanco la pantallla del explorador nose que pasa por favor ayuda.

Judith
Publicado: 02/04/2011 5:13 pm

Hola:

Necesito ayuda porque no me funciona el código tengo instalado el wampserver e instalé el phpmailer pero es como que no encuentra la funcion,
Algo no estoy entendiendo bien.

Por favor alguien me puede decir donde van los archivos smtp del phpmailer o que es lo que tengo que configurar para que funcione el código ya me da error al leer la linea del include como que no los encuentra o no se ya probé todos los codigos. Lo necesito urgente para un ejercicio que tengo que entregar !!!

Muchas gracias!!!

unijimpe
Publicado: 03/04/2011 2:13 pm

Judith, wampserver te instala automáticamente: apache, php y mysql. Para hacer el envío de correos es necesario tener un servidor SMTP.

Si tienes un hosting este por defecto ya tiene un servidor SMTP por lo cual puedes hacer el envío de correo sin problemas.

Una posibilidad es utilizar el servidor SMTP de gmail, para lo cual puedes leer la explicación de como hacerlo en: http://blog.unijimpe.net/enviar-email-con-php-y-gmail/.

También podrías instalar un servidor SMTP de forma local, podrías probar con http://www.hmailserver.com/

Agus
Publicado: 25/04/2011 6:08 pm

Hola que tal, he seguido paso a la funcion de phpmailer, sin embargo no me da ningun error, pero tampoco envia el e-mail. Yo tengo instalo en mi pc el XAMPP y no se si tengo que habilitar algo o configurar ciertas cosas en mi servidor local, o donde puedo ver lo del servicio SMTP en mi XAMPP para poder enviarl un correo de prueba desde mi pc solo con mi servidor XAMPP!! Gracias!! ojlaa puedas contestarme!!

miguel
Publicado: 26/04/2011 12:52 pm

Hola tengo instalado el phpmailer y el funcionamiento es correcto, salvo cuando envío archivos adjuntos,

Si son superiores a 9Mb No me los envía.

Si por ejemplo son de 4 Mb si que lo hace aunque tarda.

Por lo tanto phpMailer puede ser que admita un máximo de Mb para envíar archivos adjuntos ?????

Tengo:
set_time_limit(0);
var $Timeout = 60;

y utlizo el tipo de mail

case ‘mail’:
$result = $this->MailSend($header, $body);

miuler089
Publicado: 22/05/2011 3:08 am

ola necesito ayuda, intenté de todo y me sigue saliendo el mensaje de Que no puedo conectarme al servidor SMTP (Could not connect to SMTP host.) uso el wampserver y queria saber como configurarlo para activar el servidor SMTP en modo local, espero me puedas ayudar!!! saludos…

miuler089
Publicado: 22/05/2011 3:11 am

para complementar: al usar el servidor smtp de Gmail , me sigue saliendo el mismo error e incluso instale el hmailserver y aun nada!!!

Michel
Publicado: 12/06/2011 10:17 pm

Tienes idea de com hacer que el texto que uno envia por ejemplo ” hola amigo” tenga la opcion de descargarse en pdf?

Edwin Zamora
Publicado: 01/07/2011 2:07 pm

Como puedo implementar este php pero en una pagina de html, ejemplo.html

Gracias!!!

kevin
Publicado: 09/07/2011 7:38 pm

hola unijimpe si puedes por favor ayudame en el siguiente problema:
necesito mandar correo a gmail por smtp y cuando ejecuto el script para ello aparece 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?) in C:\wamp\www\cedatur\class.smtp.php on line 122
Error: Language string failed to load: connect_host

que debo hacer para solucionarlo…gracias de antemano y felicitaciones por el foro es muy bueno…

Juan Andres Gordillo
Publicado: 27/07/2011 11:17 am

Interesantisimo PhpMailer no lo conocía pero ahora me surgen unas dudas y es como llamar datos almacenados en una Base de Datos en MySql? Osea Nombre y Mail deberian ser datos variables. Gracias

Alejandro Longas Herrera
Publicado: 29/07/2011 8:29 pm

Muy buenas noches, al igual que muchas de las personas, tambien tuve el problema SMTP Error: Could not authenticate, usando la clase PHPMailer. Hice lo que recomendabaDure dos días dando vueltas por internet, hasta que me encontré un post donde alguien comentaba que su problema se solucionó cambiando a la última versión de PHPMailer, en este momento me baje la última que es la 5.1 de: http://sourceforge.net/projects/phpmailer/files/phpmailer%20for%20php5_6/PHPMailer%20v5.1/PHPMailer_v5.1.zip/download , y me funcionó con inmediatamente!. Tengo instalado PHP 5.3.5 y uso Zend Server Comunity Edition.

Jorge Mario Saldarriaga
Publicado: 17/08/2011 8:57 am

Hola, he usado phpMailer desde que inicié mi página hace ocho años, en este tiempo mi empresa ha crecido mucho pues tengo 9 personas trabajando y 5 de ellas estan constantemente enviando correos a 850 empresas afiliadas, pero parece que cuando dos o tres de ellos envian correo al mismo tiempo ocurre alguna saturación y los correos se van dobles.

cual puede ser la falla?
como se puede solucionar, hay alguna forma de colocar colas de correo como cuando varias personas van a imprimir varios documentos al tiempo?

Maria
Publicado: 17/08/2011 10:51 am

Gracias me ayudo mucho, pero quisiera saber porque todo los correos me llegan a correo no deseados del Hotmail??

Dreamy
Publicado: 29/08/2011 5:43 pm

Hola yo también utilice phpMailer y tengo el servidor de correo POSTCAST SERVER PRO. el cual envio correo con archivos adjuntos para ser mas clara necesito enviar facturas electronicas adjuntas en xml y pdf y me llegan a mi servidor, el problema que yo tengo es el siguiente:
1. al querer abrir el archivo en el servidor me manda el siguiente mensaje: Insufficient memory!!
2. como puedo hacer para que me llegue estos archivos directamente a los correo de hotmail, yahoo, gmail.
Gracias de antemano.

Maria
Publicado: 31/08/2011 12:58 pm

Hola, estoy con un problema que no se cómo solucionarlo, si alguien puede ayudarme por favor se lo agradecería.
Dentro del hosting godaddy tenemos registrados varios dominios. Lo contrate hace poco y lo pedi con CGI Preinstalado, que es la única forma en que se hacer los formularios. Es vital que en todos los dominios funcionen los formularios.
El problema es el siguiente: Dentro del dominio principal hemos diseñado un formulario de contacto que funciona a la perfeccion utilizando con asesoramiento de Go Daddy: /gdform.php , por otro lado, en otro dominio tambien hemos creado un formulario con /gdform.php que no podemos hacer que funcione dado a que no es el dominio principal. Lo que nos dijeron que habia que hacer es informar en el codigo que el /gdform.php esta en otro directorio. Lamentablemente no comprendo la respuesta ya que no manejo los terminos con los que me dieron la informacion.
Realmente es fundamental para mi que en cada dominio que registre los formularios de contacto funcionen a la perfeccion sin ningun tipo de inconvenientes. No puedo trabajar si no es por medio de este contacto.
Les pido por favor me ayuden a solucionar este inconveniente para poder aprender a hacerlo con los demas dominios que utilice dentro de la misma cuenta de Hosting.
Les agradezco muchisimo su respuesta y su ayuda.

Angel
Publicado: 12/09/2011 10:27 am

hola, utilizo el phpmailer para lanzar una newsletter, por ahora va todo bien, el problema viene con los mails que devuelven error, es decir, que a la hora de enviarlo el send acaba bien pero al cabo de un tiempo (minutos, horas o días) viene el error por ejemplo de que tenían el buzón lleno. ¿Hay alguna forma de cazar esos errores para hacer un reenvio?

Gracias

chip
Publicado: 14/09/2011 4:52 pm

no se si me puedan ayudar es que me sale esto

Warning: require(class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in prueva.php on line 2

Warning: require(class.phpmailer.php) [function.require]: failed to open stream: No such file or directory in prueva.php on line 2

Fatal error: require() [function.require]: Failed opening required ‘class.phpmailer.php’

Adriana
Publicado: 29/09/2011 7:07 pm

olaa !!!
Ojala alguien pudiera ayudarme necesito enviar un correos
tengo instalado PHP 5 y PHPMailer_v5.1 y no funciona me arroja este error “”" SMTP Error: Could not authenticate. The following From address failed: ejemplo@hotmail.com .No se pudo enviar el Mensaje “”"”"

Y mi codigo es el siguiente .

IsSMTP();
$mail->SMTPAuth = true;
$mail->Mailer = “smtp”;
$mail->Username = “ejemplo@hotmail.com”;
$mail->Password = “*********”;
$mail->Host = “smtp.live.com”;

$mail->From = “ejemplo@hotmail.com”;
$mail->FromName = “Nombre a mostrar del Remitente”;
$mail->Subject = “Asunto”;
$mail->AddAddress(“ejemplo@hotmail.com”,”Nombre a mostrar del Destinatario”);
$mail->WordWrap = 50;
$body = “Hola, este es un…”;
$body .= ” mensaje de prueba”;
$mail->Body = $body;
$mail->Send();

if(!$mail->Send()){
echo “No se pudo enviar el Mensaje.”;
}
else
{
echo “Mensaje enviado”;
}
?>
Alguien me podria ayudar a solucionar mi problema ya que llevo dias buscando y buscando y las unicas soluciones que encontrado es
que si agrego esta linea funcionara pero eso de “eldominioqueusas” no me queda muy claro
$mail->Helo = “www.eldominioqueusas.com.mx”;
y la segunda es descargando la ultima version de PHPMailer pero es la que tengo instalada y ni asii. :(

decoracion con globos
Publicado: 14/11/2011 8:23 pm

A cuantos correos se puede enviar a la misma vez con este script, 50, 100, 200, 1000, o cuantos. Entre aqui a tu web porque queria saber como tiene que ser un servidor para poder enviar tantos coreos.

Un saludos

decoracion con globos
Publicado: 17/11/2011 2:34 pm

Hola, tengo asi un formulario y en proceso.php tengo esto

<?php
// INGRESE EL EMAIL DONDE RECIBIRÁ LOS DATOS DEL FOMULARIO
$para = 'felseck@hotmail.com';

$asunto = $_POST["tipo"];
$mailheader = "From: ".$_POST["email"]."\r\n";
$mailheader .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheader .= "Content-type: text/html; charset=iso-8859-1\r\n";
$MESSAGE_BODY = "Nombre: ".$_POST["nombre"]."”;
$MESSAGE_BODY .= “Email: “.$_POST["email"].”";
$MESSAGE_BODY .= “Telefono: “.$_POST["telefono"].”";
$MESSAGE_BODY .= “Tipo de contacto: “.$_POST["tipo"].”";
$MESSAGE_BODY .= “Mensaje: “.nl2br($_POST["mensaje"]).”";
mail($para, $asunto, $MESSAGE_BODY, $mailheader) or die (“Error al enviar el Formulario !”);

$mail->AddAttachment(“archivos/Paso para conectar Grupo Conecta.pdf”, “Paso para conectar Grupo Conecta.pdf”);

//MODIFICAR A LA DIRECCIÓN EN SU SERVIDOR
header( ‘Location: http://www.SuSitio.com/gracias.html‘)
?>

Todo lo envia bien, pero el archivo adjunto no.. Que estoy haciedno mal?

unijimpe
Publicado: 18/11/2011 10:40 am

En el caso de Adriana el servidor de SMTP te esta pidiendo un usuario y clave validos ara hacer el envío de emails, verifica que el usuario este bien escrito. Además de ello estas utilizando smtp.live.com como servidor SMTP cuando deberías utilizar un servidor local o algún otro servidor SMTP.

Para “decoracion con globos” es muy probable que el nombre del archivo que deseas adjuntar no sea el correcto. Te recomiendo que utilices nombres de archivos que no contengan espacios en blanco, tildes y tampoco letras en mayusculas.

Lady A
Publicado: 16/12/2011 9:15 am

hola, me ha gustado tu publicacion, pero tengo un problema como hago para mostrar los e-mail recibidos. quisiera saber si se puede mostrar en una lista como gmail o hotmail para que al dar clic los pudiera leer uno por uno. Gracias

jhynsgbao
Publicado: 03/02/2012 2:57 pm

que codigo puedo utilizar para que me reconosca la letra “ñ” y tambien la tilde por que al momento de enviar un mensaje desde el formulario creado cuando me llega el mensaje no me reconoce la letra ‘ñ’ y la tilde …. ojala me puedas ayudar es urgente….

Lucas
Publicado: 14/02/2012 3:29 am

Hola, hace tiempo que la utilizo y me funciona muy bien, mi unico problema, es que si le adjunto un array de direcciones, como copia oculta, si por un casual uno de ellos no existe, no me envia los demas, hay alguna opción que siga enviando si uno de ellos no existe?.

Un Saludo

egutierrez
Publicado: 01/03/2012 2:41 pm

Buenas tardes amigo, sabes que cantidad de direcciones (addbcc) a la vez puedo agregar en un email. por ejemplo tengo un email que quiero enviar a 2000 personas, si hago un bucle que envie uno a la vez, posiblemente me congestione el servidor, por eso la pregunta, puedo hacer un bucle que envie por lo menos 100 o 200 correos a la vez? o cuando es lo que soporta el phpmailer? Graciass

Luis
Publicado: 24/05/2012 6:25 pm

Pregunta:

Yo he hecho formularios con flash y utilizo php para mandarlos, llegan a todo tipo de mails (gmail, yahoo, cualquier server), excepto a hotmail. me recomendaron usar phpmail para que asi pudieran llegar a la bandeja de hotmail, mi pregunta es si con esto puede leer las variables que les mando desde el formulario de flash?

saludos y gracias

Marina
Publicado: 05/06/2012 2:29 pm

hola unijimpe, tus tutoriales son super accesibles para gente que recién empieza como yo, pero estoy complicada para hacer funcionar mi formulario. Es bastante grande y estoy trabaja realmente. te lo paso y si podes darme una mano sería genial. a lo ultimo la gente tiene que poder adjuntar un curriculum (.doc / .pdf) y ese archivo debería llegar adjunto por mail donde el cuerpo del mail contenga toda la data del formulario.
http://www.institutosmas.com/bolsadetrabajo.php
GRACIAS!!!

Daniel
Publicado: 22/11/2012 3:01 am

a mi me sale esto Deprecated: Function set_magic_quotes_runtime() is deprecated in C:\wamp\www\honda facturacion\PHPMailer_v5.1\class.phpmailer.php on line 1471

milton
Publicado: 24/11/2012 5:12 pm

amigos no consigo hacer mandar un correo a gmail con la clase phpmailer
tengo el archivo enviar.php
pero no se como configurar el class.phpmailer ni el class.smtp tambien tengo el fichero class.pop3.php
una ayudadita por fabor haber quien a conseguido enviar un correo a gmail

Pako
Publicado: 08/04/2013 12:57 pm

tengo un problema con este codigo

IsSMTP();
$mail->SMTPAuth = true;
$mail->SMTPSecure = "ssl";
$mail->Host = "smtp.gmail.com";
$mail->Port = 465;
$mail->Username = "alguien@gmail.com";
$mail->Password = "algo";

try {
$mail->From = "alguien@gmail.com";
$mail->FromName = "Web";
$mail->Subject = "Subject del Email";
$mail->AltBody = "Hola, te doy mi nuevo numero\nxxxx.";

if(!$mail->Send()) {
echo "Error: " . $mail->ErrorInfo;
} else {
echo "Mensaje enviado correctamente";
}

} catch (phpmailerException $e) {
echo $e->errorMessage(); //Pretty error messages from PHPMailer
} catch (Exception $e) {
echo $e->getMessage(); //Boring error messages from anything else!
}
?>

donde carajo esta el problema??? ya no se que estoy haciendo mal! jajaja gracias!

Erik
Publicado: 17/10/2013 12:22 pm

Hola solo queria agradeser por tu ejemplo me funciono de maravilla

RODOLFO
Publicado: 02/01/2014 9:52 am

Señores alguien tendrá info de como funciona phpmailer con FREEPBX (Asterisk) para el emvió de correo por VOICEMAIL.

 

Comentar

En este blog los comentarios están moderados, serán mostrados cuando el administrador los apruebe. Por favor, evita comentarios ofensivos u obscenos por que no serán aprobados.
Si deseas publicar código fuente debes hacerlo entre las etiquedas <code> y </code>, además debes reemplazar los carácteres < por &lt; y > por &gt;.

(Requerido)

(Requerido, no será publicado)

(Requerido)

(Tags aceptados: <a> <em> <strong> <code> <ul> <li>)