Existen dos modalidades de envío de mails con PHP. La función mail() y el manejo de PHPMailer.
La primera de las opciones es la opción que utilizan la mayoría de programadores debido a su fácil manejo, funcionabilidad y compatibilidad con MySQL, pero esta función no es recomendable para realizar envíos masivos de mails.
La segunda de las opciones, el uso de PHPMailer, permite realizar este tipo de envíos masivos indicando el puerto y la cuenta desde la que queramos enviar. Esta opción es una herramienta potente con la posibilidad de personalizar muchas opciones del envío que queramos realizar, tales como, envíos a varios remitentes con CC, CCO, etc, autenticación por SMTP, envíos con HTML, envíos con ficheros adjuntos, …. Sin olvidarnos de que se trata de clase gratuita que podemos descargar del siguiente link:
Una vez descargada la librería basta con incluirla en nuestro proyecto y para poder utilizarla deberemos de utilizar la función require y crear un objeto de la clase PHPMailer.
// incluimos la librería en nuestra página
require_once “class.phpmailer.php”;
// create a new mail
$mail = new PHPMailer();
// dirección de envío
$mail->From = ” webmaster@example.com”;
// nombre y asunto
$mail->FromName = “Webmaster”;
$mail->Subject = “Asunto envoi mails smtp”;
// a través de este host (si no se especifica coge el de php.ini)
$mail->Host = “example.es”;
// Puerto para enviar (si no se especifica coge el de php.ini, 25 por defecto)
$mail->Port = 25;
// Activamos la validación pr SMTP
$mail->SMTPAuth = true;
//Usuario del propietario del mail
$mail->Username = “setn2012”;
//Password del propietario del mail
$mail->Password = “segoemor”;
// Servicio de envío
$mail->Mailer = “smtp”;
// Dirección del destinatario
$mail->AddAddress(‘destinatario@example.com’);
// con copia oculta a
$mail->AddBCC(‘destinatario2@example.com’);
// activamos el contenido HTML en caso de que haya que activarlo
$mail->IsHTML(TRUE);
// Texto HTML
$mail->Body = “<html><head><title>Título</title></head><body>
<p>Hola Mundo</p>”;
// Y esto es como alternativa en texto plano.
$mail->AltBody = “Título\n\n Hola Mundo”;
//Para adjuntar algún fichero
$mail->AddAttachment($attach);
// Y ahora enviar y comprobar el envío
if($mail->Send())
{
echo “El correo se ha enviado correctamente”;
}else{
echo “Problemas en el envío, contacte con el administrador”;
}
En el código anterior puedes encontrar un ejemplo completo con múltiples opciones de envío.
El manual oficial de PHP que puedes encontrar en PHP.net, dice que para envíos HTML a una gran cantidad de destinatarios es recomendable utilizar los paquetes PEAR::Mail y PEAR::Mail_Queue.
Post publicado por: German Romeo
SEAS es el centro de formación online del Grupo San Valero, especializado en el ámbito técnico, industrial y de empresa. Visita www.seas.es para consultar nuestra oferta formativa de cursos y másteres. Formación profesional para el empleo de calidad y accesible para todos.
Emilio
19 febrero, 2014 at 3:00 pmhola, usando este codigo me sale: Mailer Error: SMTP connect() failed.
¿alguna idea?