Informática

Envío de mails por SMTP con PHP

20 enero, 2013

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

Puedes compartir este artículo en:
  • Reply
    Emilio
    19 febrero, 2014 at 3:00 pm

    hola, usando este codigo me sale: Mailer Error: SMTP connect() failed.

    ¿alguna idea?

Deja un comentario

Información básica acerca de cómo protegemos tus datos conforme al Reglamento General de Protección de Datos (Reglamento UE 2016/679) y en la Ley Orgánica 3/2018, de 5 de diciembre, de Protección de Datos Personales y garantía de los derechos digitales

De conformidad con lo establecido en el Reglamento General de Protección de Datos, te informamos de:

- Quien es el responsable del tratamiento: SEAS, Estudios Superiores Abiertos S.A.U con NIF A-50973098, dirección en C/ Violeta Parra nº 9 – 50015 Zaragoza y teléfono 976.700.660.

- Cuál es el fin del tratamiento: Gestión y control de los comentarios del blog de SEAS. 

- En que basamos la legitimación: En tu consentimiento.

- La comunicación de los datos: No se comunicarán tus datos a terceros.

- Los criterios de conservación de los datos: Se conservarán mientras exista interés mutuo para mantener el fin del tratamiento o por obligación legal. Cuando dejen de ser necesarios, procederemos a su destrucción.

- Los derechos que te asisten: (i) Derecho de acceso, rectificación, portabilidad y supresión de sus datos y a la limitación u oposición al tratamiento, (ii) derecho a retirar el consentimiento en cualquier momento y (iii) derecho a presentar una reclamación ante la autoridad de control (AEPD).

- Los datos de contacto para ejercer tus derechos: SEAS, Estudios Superiores Abiertos S.A.U. C/ Violeta Parra nº 9 –
50015 Zaragoza (España) o través de correo electrónico a lopd@estudiosabiertos.com

- También puedes ponerte en contacto con nuestro Delegado de Protección de Datos en dpd@estudiosabiertos.com

Información adicional: Puedes consultar la información adicional y detallada sobre nuestra política de privacidad