# Введение

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

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).