Introducción a Zend_Mail

Zend_Mail provee funcionalidad para componer y enviar mensajes de correo electrónico tanto de texto como multipart –compatible con MIME-. Los correos electrónicos pueden ser enviados con Zend_Mail y el transporte por defecto Zend_Mail_Transport_Sendmail o por vía Zend_Mail_Transport_Smtp.

Ejemplo

Enviando correo electrónicos con Zend_Mail

Un correo electrónico simple consiste de algunos destinatarios, un titulo, un cuerpo y un remitente. Para enviar ese correo usando Zend_Mail_Transport_Sendmail, haz lo siguiente:

<?php
require_once ‘Zend/Mail.php’;
$mail = new Zend_Mail();
$mail->setBodyText(‘Este es el cuerpo del mensaje.’);
$mail->setFrom(‘remitente@ejemplo.com’, ‘Remitente’);
$mail->addTo(‘destinatario@ejemplo.com’, ‘Destinatario’);
$mail->setSubject(‘Titulo de prueba’);
$mail->send();
?>

Requisitos mínimos
Con objetivo de enviar el correo con Zend_Mail necesitas especificar al menos un destinatario, un remitente (con setFrom()), y un cuerpo de mensaje (texto y/o HTML).

Para la mayoría de los atributos hay getters (métodos “get”) para leer información almacenada en el objeto de correo. Para información detallada, refiérase a la documentación del API. Un método especial es getRecipients(). Devuelve un array con todos los direcciones de correo de los destinatarios que fueron agregadas previamente a la llamada de este método.

Por razones de seguridad, Zend_Mail filtra todos los campos de encabezado para prevenir inyecciones con caracteres de nueva línea.

También puedes usar la mayoría de los métodos de Zend_Mail con una cómoda y fluida interfase. Una interfase fluida significa que cada método devuelve una referencia al objeto donde fue llamado, así que puede llamar a otro método inmediatamente.

<?php
require_once ‘Zend/Mail.php’;
$mail = new Zend_Mail();
$mail->setBodyText(‘This is the text of the mail.’)
->setFrom(’somebody@example.com’, ‘Some Sender’)
->addTo(’somebody_else@example.com’, ‘Some Recipient’)
->setSubject(‘TestSubject’)
->send();
?php>

Configurando el transporte por defecto, sendmail

El transporte por defecto para la instancia de Zend_Mail es Zend_Mail_Transport_Sendmail. Basicamente es un envoltorio de la función mail() de PHP. Si quieres pasar parámetros adicionales a la función mail(), simplemente crea una nueva instancia del transporte y pasa los parámetros a sus constructor. La instancia del nuevo transporte puede entonces actuar como el transporte por defecto de Zend_Mail, o puede ser pasado al metodo send() de Zend_Mail.

Ejemplo.

Pasando parámetros adicionales al transporte Zend_Mail_Transport_Sendmail.

Este ejemplo muestra como cambiar el “Return-Path” de la función mail().

<?php
require_once ‘Zend/Mail.php’;
require_once ‘Zend/Mail/Transport/Sendmail.php’;
$tr = new Zend_Mail_Transport_Sendmail(‘-freturn_to_me@example.com’);
Zend_Mail::setDefaultTransport($tr);
$mail = new Zend_Mail();
$mail->setBodyText(‘This is the text of the mail.’);
$mail->setFrom(’somebody@example.com’, ‘Some Sender’);
$mail->addTo(’somebody_else@example.com’, ‘Some Recipient’);
$mail->setSubject(‘TestSubject’);
$mail->send();
?php>


Restricciones en modo seguro (“Safe mode”)
Los parámetros adicionales opcionales causaran que la función mail() falle si PHP esta ejecutándose en modo seguro.

Todavía no hay comentarios

Replica