Главная / Zend Manual Core
Zend_Mail

Введение

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

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

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

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

  1. $mail = new Zend_Mail();
  2. $mail->setBodyText('This is the text of the mail.');
  3. $mail->setFrom('somebody@example.com', 'Some Sender');
  4. $mail->addTo('somebody_else@example.com', 'Some Recipient');
  5. $mail->setSubject('TestSubject');
  6. $mail->send();

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

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

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

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

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

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

Этот пример демонстрирует, как изменить заголовок Return-Path для функции » mail().

  1. $tr = new Zend_Mail_Transport_Sendmail('-freturn_to_me@example.com');
  2. Zend_Mail::setDefaultTransport($tr);
  3.  
  4. $mail = new Zend_Mail();
  5. $mail->setBodyText('This is the text of the mail.');
  6. $mail->setFrom('somebody@example.com', 'Some Sender');
  7. $mail->addTo('somebody_else@example.com', 'Some Recipient');
  8. $mail->setSubject('TestSubject');
  9. $mail->send();

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


Zend_Mail