Programmer's Reference Guide
Table of Contents
- 29.1. Introduction
- 29.2. Sending via SMTP
- 29.3. Sending Multiple Mails per SMTP Connection
- 29.4. Using Different Transports
- 29.5. HTML E-Mail
- 29.6. Attachments
- 29.7. Adding Recipients
- 29.8. Controlling the MIME Boundary
- 29.9. Additional Headers
- 29.10. Character Sets
- 29.11. Encoding
- 29.12. SMTP Authentication
- 29.13. Securing SMTP Transport
- 29.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 29.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.
You also can use most methods of the Zend_Mail object with a convenient fluent interface. A fluent
interface means that each method returns a reference to the object on which it was called, so you can
immediately call another method.
$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 29.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)