# Введение

## Начало работы

`Zend_Mail` предоставляет обобщенный функционал для формирования и отправки как текстовых, так и MIME-сообщений электронной почты. Сообщения могут отправляться через `Zend_Mail_Transport_Sendmail` (используется по умолчанию) или через `Zend_Mail_Transport_Smtp`.

### Простое сообщение электронной почты

Простое сообщение электронной почты состоит из нескольких получателей, заголовка сообщения, тела сообщения и отправителя. Чтобы отправить такое сообщение, используя `Zend_Mail_Transport_Sendmail`, сделайте следующее:

    $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();

### Минимально необходимые определения

Для того, чтобы отправить сообщение через `Zend_Mail`, вы должны указать как минимум одного получателя, отправителя (например, с помощью `setFrom()`) и тело сообщения (текстовое и/или в формате HTML).

Для большинства атрибутов сообщений электронной почты есть методы "get" для чтения информации, сохраненной в объекте сообщения. За более подробной информацией обратитесь к API-документации. К примеру, метод `getRecipients()` возвращает массив с адресами электронной почты получателей, в порядке их добавления.

В целях безопасности `Zend_Mail` фильтрует все содержимое заголовков для предотвращения инъекций в заголовки с использованием символов новой строки (`\n`). В имени отправителя и именах получателей двойные кавычки заменяются на одинарные, а угловые скобки на квадратные. Если эти символы находятся в адресах электронной почты, то они удаляются.

## Конфигурирование транспорта, используемого по умолчанию

Для экземпляра `Zend_Mail` по умолчанию используется `Zend_Mail_Transport_Sendmail`. По существу он является оберткой к PHP-функции `mail()`. Если вы хотите передавать функции `mail()` дополнительные параметры, то просто создайте новый экземпляр транспорта и передайте свои параметры его конструктору. После этого новый экземпляр транспорта может выступать как используемый по умолчанию транспорт для `Zend_Mail`, либо он может быть передан методу `send()` класса `Zend_Mail`.

### Передача дополнительных параметров транспорту Zend_Mail_Transport_Sendmail

Этот пример демонстрирует, как изменить заголовок Return-Path для функции `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();

### Ограничения безопасного режима

Применение дополнительных параметров приведет к отказу в выполнении функции `mail()`, если PHP работает в безопасном режиме (safe mode).