Chapter 17. Zend_Mail

Table of Contents

17.1. Introduction
17.2. Sending via SMTP
17.3. Sending Multiple Mails per SMTP Connection
17.4. Using Different Transports
17.5. HTML E-Mail
17.6. Attachments
17.7. Adding Recipients
17.8. Controlling the MIME Boundary
17.9. Additional Headers
17.10. Character Sets
17.11. Encoding
17.12. SMTP Authentication
17.13. Securing SMTP Transport
17.14. Reading Mail Messages
17.14.1. Simple example using Pop3
17.14.2. Opening a local storage
17.14.3. Opening a remote storage
17.14.4. Fetching messages and simple methods
17.14.5. Working with messages
17.14.6. Using folders
17.14.7. Advanced Use

17.1. Introduction

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 php built-in mail() function or via direct SMTP connection.

Example 17.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 the PHP mail() function, do the following:

<?php
require_once 'Zend/Mail.php';
$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();
?>   
[Note] Minimum definitions

In order to send an e-mail with Zend_Mail you have to specify at least one recipient, a sender (e.g., with setFrom()), and a message body (text and/or HTML).

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.