InicioHazlo Tu Mismo¿Programas en PHP? - Envía correos a tus clientes (guía)

¿Programas en PHP? - Envía correos a tus clientes (guía)

Hazlo Tu Mismo1/19/2012
Una gran cantidad de personas que programan en PHP llegan a la duda de cómo enviar un correo electrónico, si bien PHP tiene el comando mail() para el envío de correo estaríamos dependiendo de la presencia de un servidor de correo en la máquina que ejecutamos nuestro sistema. También contamos con opciones avanzadas como los de Pear, sin embargo son complejas de entender, aplicar y requieren la inclusión de bastantes librerías.

En este post quiero enseñarles dos librerías que nos facilitarán la vida al momento de enviar todo tipo de contenido a traves del correo electrónico para tener un mejor contacto con nuestros clientes.

¿Programas en PHP? - Envía correos a tus clientes (guía)


"Haciendo click en la imagen abrirá el sitio de SwiftMailer
de donde se puede descargar la última versión"


SwiftMailer es una gran librería que brinda muchas opciones para el envío de correos electrónicos con sus ventajas y desventajas:
PHP Plugins que aseguran el envío del correo y la integridad de nuestro servidor.
Hotmail Completa personalización, lo ideal para usuarios expertos.
smtp Ejecución bastante eficiente.
PHPMailer Capacidad de integración y trabajo con PEAR.
servicio de correo Código complejo de aprender y quizás entender.

Veamos un ejemplo de código:

<?php
   
require_once 'lib/swift_required.php';

   
//Iniciamos el objeto de 'mensaje'
   
$mensaje Swift_Message::newInstance($transport);
   
//Indicamos la direccion del remitente
   
$mensaje->setFrom('[email protected]');
   
//Agregamos los destinatarios en un array asociativo, solo correo, o nombre y correo
   
$mensaje->setTo(array(
         
'[email protected]',
         
'[email protected]=> 'Elsa Pato'
   
));
   
//Determinamos el titulo de nuestro correo
   
$mensaje->setSubject('El tema del correo');
   
//Escribimos el contenido de nuestro correo, podemos introducir texto plano o html.
   
$mensaje->setBody("<h3>Un ejemplo cualquiera</h3>","text/html");
   
//Podemos tambien agregar mas texto al contenido
   
$mensaje->addPart("Otro ejemplo que vamos a agregar");

   
//Habilitamos el transporte SMTP, con la direccion del servidor, el puerto y el tipo de conexion.
   
$transporte Swift_SmtpTransport::newInstance("smtp.dominio.com"25"ssl");
   
//Nos autentificamos con nombre de usuario y contraseña
   
$transporte->setUsername("tu_nombre_de_usuario");
   
$transporte->setPassword("tu_contrasenia");

   
//Iniciamos el objeto de envio de correo con el de 'transporte'
   
$mail Swift_Mailer::newInstance($transporte);

   
//Enviamos el objeto 'mensaje', con el transporte seleccionado
   
$result $mail->send($mensaje);

   if(
$result) echo "Se enviaron $result correos correctamente";
   else echo  
"Hubo una falla, verifique".
?>


Este es un ejemplo sencillo para el envío de correo electrónico, sin embargo podemos hacer cosas más avanzadas como incluir archivos:
$archivo = Swift_Attachment::fromPath('/direccion/al/archivo.jpg', 'image/jpeg');
$mensaje->attach($archivo);

También hacer uso de CC y CCO:
$mensaje->setCc(array(
   "[email protected]",
   "[email protected]"=>"Elmer Curio"
));
$mensaje->setBcc(array(
   "[email protected]",
   "[email protected]"=>"Juanita"
));

Estas son las opciones básicas para el envío de correos, sin embargo existen más opciones de personalización que podemos encontrar en el sitio web de SwiftMailer.

swiftmailer


"Haciendo click en la imagen abrirá el sitio de PHPMailer
de donde se puede descargar la última versión"


PHPMailer es el favorito de muchos por su simplicidad y facilidad de implementación, es altamente recomendable ya que sólo tienes que preocuparte en el mensaje y no tanto en cómo enviarlo, al igual que SwiftMailer tiene ventajas y desventajas que vale la pena recalcar:
¿Programas en PHP? - Envía correos a tus clientes (guía) Facilidad de implementación, aprendizaje y entendimiento del código.
Gmail Bastante ayuda en foros, blogs y demás sitios web por internet.
PHP Bastante seguro ante distintas formas de ataque.
Hotmail No es tan personalizable, quizás como usuario "común" no se note pero si como usuario avanzado.
smtp Como es bastante popular algunos hostings gratuítos bloquean el uso de este script.

Ahora vamos con el ejemplo:

<?php
   
require_once 'class.phpmailer.php';

   
//Iniciamos el objeto PHPMailer
   
$mail = new PHPMailer ();

   
//Indicamos el correo y nombre del remitente
   
$mail->From "[email protected]";
   
$mail->FromName "Tu_nombre";
   
//Agregamos al o los destinatarios
   
$mail->AddAddress ("destino@empresa_cliente.com");
   
//Asignamos el titulo y contenido del correo, indicando que se trata de contenido HTML
   
$mail->Subject "Otra prueba";
   
$mail->Body "<h3>Un ejemplo cualquiera</h3>";
   
$mail->IsHTML (true);

   
//Inicializamos el transporte SMTP
   
$mail->IsSMTP();
   
//Indicamos el host junto al tipo de conexion (SSL), el puerto y la autentificacion
   
$mail->Host 'ssl://smtp.dominio.com';
   
$mail->Port 25;
   
$mail->SMTPAuth true;
   
$mail->Username 'tu_usuario';
   
$mail->Password 'tu_contrasenia';

   
//Enviamos el correo, en caso que hubo un error lo mostramos
   
if(!$mail->Send()) echo  'Error: ' $mail->ErrorInfo;
   else echo  
'Correo enviado!'.
?>


Este es un ejemplo sencillo para el envío de correo electrónico, sin embargo al igual que SwiftMailer con este script podemos hacer cosas más avanzadas como incluir archivos:
$mail->AddAttachment("imagenes/img.jpg", "nombre_a_mostrar.jpg");
Y también hacer uso de CC y CCO:
$mail->AddCC("[email protected]");  
$mail->AddBCC("[email protected]");

Como vemos la implementación de PHPMailer es bastante sencilla y sólo hacemos uso de un único objeto a diferencia de SwiftMailer, pero la ventaja de SwiftMailer es su gran capacidad de personalización que de seguro es el banquete perfecto para usuarios avanzados.

Al final es desición de cada uno tomar la herramienta que crea conveniente para el uso que le vaya a dar.

PHPMailer
servicio de correo

BONUS 1


Perfecto, quiero enviar mi correo electrónico, tengo SwiftMailer, tengo PHPMailer, pero espera, mi hosting gratuíto no me permite enviar correo electrónico, busqué y dice que tengo que pagar un hosting decente

No hay problema los grandes servicios de correo electrónico (Gmail, Hotmail y Yahoo) nos brindan la posibilidad de enviar correo haciendo uso de sus servidores SMTP. Para ello obviamente es necesario poseer una cuenta y después cambiar en el script los siguientes datos:

Gmail:
Host: smtp.gmail.com
Puerto: 465 (ssl) / 587 (tls)
Tipo de conexion: ssl / tls
Nombre de cuenta: [email protected]
Contraseña: **tu contraseña de Gmail**
Remitente: [email protected]


Hotmail:
Host: smtp.live.com
Puerto: 25
Tipo de conexion: tls
Nombre de cuenta: [email protected] (hotmail, live, msn, etc.)
Contraseña: **tu contraseña de Live**
Remitente: [email protected] (hotmail, live, msn, etc.)


Yahoo:
Host: smtp.mail.yahoo.com
Puerto: 465
Tipo de conexion: ssl
Nombre de cuenta: tu_usuario (tu usuario sin el @yahoo.com)
Contraseña: **tu contraseña de Yahoo**
Remitente: [email protected]


swiftmailer
yahoo. correos

BONUS 2


Ok, pero yo tengo mi propio dominio y en vez que salga [email protected], quiero que salga [email protected].

Gmail hace algunos años lanzó su opción para crear correos personalizados con el dominio propio, pero recientemente se puso a cobrar por brindar ese servicio.

Si entramos a http://www.google.com/a/help/intl/es/business/applications.html podemos ver que si es posible trabajar con nuestro propio dominio mediante Gmail, pero nos cobran la módica suma de 4euros/cuenta de usuario/mes; imagina que queremos tener 10 usuarios en nuestra microempresa, nos saldría 40 euros extra al mes. Si no pudimos pagar un respetable servicio de hosting mucho menos pagaremos sólo por tener cuentas de correo que quizás ni lo usemos.

Obviamente si tenemos una empresa grande y hacemos uso de todas las herramientas que nos brinda Gmail (Calendar, Docs, Video, etc.), el pago resulta siendo una inversión y no un gasto. Pero volvamos con nuestra microempresa.

A protesta de muchos y alivio de otros viene Live al rescate...

Si entramos al sitio: , veremos un apartado poco conocido, Centro de Administración de Windows Live, donde crearemos nuestros correos con dominio personalizado y les daremos todo el poder que tiene un correo de Hotmail. Vamos por partes:

1. Una vez dentro del sitio vamos a la opción Dominios personalizados, y hacemos click en Introducción.

2. En la segunda pantalla pondremos nuestro dominio y seleccionamos "Sin correo para mi dominio" sólo por ahora.
¿Programas en PHP? - Envía correos a tus clientes (guía)


3. En la siguiente pantalla seleccionamos la primera opción "Iniciar sesion con una cuenta de Windows Live existente" (por seguridad es mejor usar cuentas externas, en este caso una existente de hotmail o live)
Gmail


4. Nos logueamos con nuestra cuenta de hotmail o live; si, aquella que usamos para chatear por messenger.

5. Una vez logueado nos saldrá una ventana de confirmación, Aceptamos.

6. En la siguiente nos saldrá un aviso de fondo amarillo indicándonos que debemos demostrar la propiedad del dominio (de no ser así yo me crearía un correo [email protected] como si nada). Debajo del aviso nos salen configuraciones que debemos aplicar en nuestro dominio, entonces vamos a configurar el dominio.

7. Entramos a nuestro panel de control del dominio, buscamos el apartado donde administramos nuestros DNS (ustedes sabrán como , eso varía de proveedor en proveedor).

8. Configuramos los registros MX o TXT. y SRV como nos indica.
PHP


9. Esperamos un día a que la información se propage por todos los DNS, entramos de rato en rato a ver si el aviso amarillo desaparece, cuando desaparezca significa que ya tendremos configurado nuestros propios correos con dominio y la capacidad de usar el SMTP de Hotmail para el envío de nuestro correo electrónico.

10. Las próximas veces que ingresemos al sitio logueados con nuestro correo hotmail veremos la lista de nuestros dominios. Ingresamos y una vez dentro agregamos las cuentas necesarias, si queremos un correo personal podemos tenerlo e ingresar a ver la bandeja directamente desde hotmail.com.
Hotmail


smtp
PHPMailer


Eso es todo, espero que toda esta información le sirva a más de uno, no se olviden de comentar y si cometí algún error háganmelo saber así aprendemos todos haciendo énfasis al lema "Inteligencia Colectiva"; comentarios sin sentido serán borrados y usuario buscando bardo será bloqueado, saludos y a enviar correos...
Datos archivados del Taringa! original
0puntos
0visitas
0comentarios
Actividad nueva en Posteamelo
0puntos
3visitas
0comentarios
Dar puntos:

Dejá tu comentario

0/2000

Autor del Post

H
HeinrichB🇦🇷
Usuario
Puntos0
Posts1
Ver perfil →
PosteameloArchivo Histórico de Taringa! (2004-2017). Preservando la inteligencia colectiva de la internet hispanohablante.

CONTACTO

18 de Septiembre 455, Casilla 52

Chillán, Región de Ñuble, Chile

Solo correo postal

© 2026 Posteamelo.com. No afiliado con Taringa! ni sus sucesores.

Contenido preservado con fines históricos y culturales.