Programmer's Reference Guide
Table of Contents
- 33.1. Introduction
- 33.2. Sending via SMTP
- 33.3. Sending Multiple Mails per SMTP Connection
- 33.4. Using Different Transports
- 33.5. HTML E-Mail
- 33.6. Attachments
- 33.7. Adding Recipients
- 33.8. Controlling the MIME Boundary
- 33.9. Additional Headers
- 33.10. Character Sets
- 33.11. Encoding
- 33.12. SMTP Authentication
- 33.13. Securing SMTP Transport
- 33.14. Reading Mail Messages
Zend_Mail provides generalized functionality to compose and send both text and MIME-compliant
multipart e-mail messages. Mail can be sent with Zend_Mail via the default Zend_Mail_Transport_Sendmail
transport or via Zend_Mail_Transport_Smtp.
Example 33.1. Simple E-Mail with Zend_Mail
A simple e-mail consists of some recipients, a subject, a body and a sender. To send such a mail using
Zend_Mail_Transport_Sendmail, do the following:
$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();
![]() |
Minimum definitions |
|---|---|
In order to send an e-mail with |
For most mail attributes there are "get" methods to read the information stored in the mail object. For
further details, please refer to the API documentation. A special one is getRecipients().
It returns an array with all recipient e-mail addresses that were added prior to the method call.
For security reasons, Zend_Mail filters all header fields to prevent header injection with
newline (\n) characters.
Double quotation is changed to single quotation and angle brackets to square brackets in the name of
sender and recipients. If the marks are in email address, the marks will be removed.
You also can use most methods of the Zend_Mail object with a convenient fluent interface.
$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();
The default transport for a Zend_Mail instance is Zend_Mail_Transport_Sendmail.
It is essentially a wrapper to the PHP mail() function.
If you wish to pass additional parameters to the mail() function,
simply create a new transport instance and pass your parameters to the constructor. The new transport instance
can then act as the default Zend_Mail transport, or it can be passed to the send()
method of Zend_Mail.
Example 33.2. Passing additional parameters to the Zend_Mail_Transport_Sendmail transport
This example shows how to change the Return-Path of the mail()
function.
$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();
![]() |
Safe mode restrictions |
|---|---|
The optional additional parameters will be cause the |
Search the Manual
Components
Languages Available
Translation Status Reports
View the current status report of Zend Framework manual translations.

![[Note]](/images/note.gif)