Введение
Начало работы
Zend_Mail предоставляет обобщенный
функционал для формирования и отправки как текстовых, так и
MIME-сообщений электронной почты.
Сообщения могут отправляться через
Zend_Mail_Transport_Sendmail
(используется по умолчанию) или через
Zend_Mail_Transport_Smtp.
Простое сообщение электронной почты
Простое сообщение электронной почты состоит из нескольких
получателей, заголовка сообщения, тела сообщения и отправителя.
Чтобы отправить такое сообщение, используя
Zend_Mail_Transport_Sendmail,
сделайте следующее:
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().
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).