Tabla de contenidos
- 45.1. Introducción
- 45.2. Envío vía SMTP
- 45.3. Envío de múltiples correos por conexión SMTP
- 45.4. Uso de diferentes transportes
- 45.5. Correo electrónico en HTML
- 45.6. Adjuntos
- 45.7. Añadir destinatarios
- 45.8. Control del límite MIME
- 45.9. Cabeceras adicionales
- 45.10. Juegos de caracteres
- 45.11. Codificación
- 45.12. Autenticación SMTP
- 45.13. Aseguramiento del transporte SMTP
- 45.14. Lectura de mensajes de correo
Zend_Mail proporciona funcionalidad generalizada para componer y enviar
mensajes de correo electrónico tanto de texto como multiparte compatibles con MIME. El correo se puede
enviar con Zend_Mail mediante el transporte por defecto
Zend_Mail_Transport_Sendmail o mediante
Zend_Mail_Transport_Smtp.
Ejemplo 45.1. Correo electrónico simple con Zend_Mail
Un correo electrónico simple consiste en algunos destinatarios, un asunto, un cuerpo y un remitente. Para enviar
dicho correo usando Zend_Mail_Transport_Sendmail, haga
lo siguiente:
$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();
![]() |
Definiciones mínimas |
|---|---|
Para enviar un correo electrónico con |
Para la mayoría de los atributos de correo existen métodos "get" para leer la información almacenada en el
objeto mail. Para más detalles, consulte la documentación de la API.
Uno especial es getRecipients(). Devuelve un
array con todas las direcciones de correo electrónico de los destinatarios que se añadieron antes de la llamada al método.
Por motivos de seguridad, Zend_Mail filtra todos los campos de cabecera para
evitar la inyección de cabeceras con caracteres de nueva línea (\n).
Las comillas dobles se cambian a comillas simples y los corchetes angulares a corchetes cuadrados en
el nombre del remitente y los destinatarios. Si las marcas están en la dirección de correo electrónico, las marcas se
eliminarán.
También puede usar la mayoría de los métodos del objeto Zend_Mail con una
cómoda interfaz fluida.
$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();
El transporte por defecto para una instancia de Zend_Mail es
Zend_Mail_Transport_Sendmail. Es esencialmente un envoltorio de la
función mail() de PHP. Si
desea pasar parámetros adicionales a la función mail(), simplemente
cree una nueva instancia de transporte y pase sus parámetros al constructor. La nueva
instancia de transporte puede entonces actuar como el transporte por defecto de
Zend_Mail, o se puede pasar al método send() de
Zend_Mail.
Ejemplo 45.2. Paso de parámetros adicionales al transporte Zend_Mail_Transport_Sendmail
Este ejemplo muestra cómo cambiar el Return-Path de la función mail().
$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();
![]() |
Restricciones del modo seguro |
|---|---|
Los parámetros adicionales opcionales harán que la función |
![]() |
Transporte Sendmail y Windows |
|---|---|
|
Como indica el manual de PHP, la función Por lo tanto, si desea usar BCC en un servidor Windows, ¡use el transporte SMTP para el envío! |
![[Note]](images/note.png)
![[Warning]](images/warning.png)