Хммм? Ну, с Zend вы можете настроить Zend_Mail в вашем загрузчике или с помощью файла application.ini или другого файла конфигурации. Вот как я сейчас настраиваю свою. Для dev я напишу письма в файл, а для тестирования я отправлю почту через реальный почтовый сервер.
Я создаю экземпляр своего экземпляра Zend_Mail в классе, который я называю Mail_Service. Этот класс почтовой службы создаст экземпляр Zend_Mail внутри, когда ему нужно будет отправить письмо, и будет использовать существующий экземпляр Zend_Mail, если он был создан и необходимо отправить больше писем.
У него есть методы, которые будут отправлять мне заранее определенные письма. Например,
Mail_Service->sendWelcomeEmail( $userInfo )
OR
Mail_Service->sendActivationEmail( $userInfo )
Скажем, например, что мой контроллер получает запрос на создание нового пользователя, тогда весь поток моего кода будет выглядеть так
</p>
<pre>
//in the controller
//process form from browser somehow
UserAccountService->createNewUser( $userInfo );
/////////////////
/// Within the user account service
public function createNewUser( $userInfo )
{
$userMapper->createNewUser( $userInfo );
$preferencesMapper->createDefaultPreferencesForUser( $userInfo );
MailService->sendWelcomeEmail( $userInfo );
}
</pre>
<p>
Я не знаю, является ли это наилучшим способом сделать это, но так у моего сервиса есть функция
имена, которые имеют отношение к службе и захватывают весь рабочий процесс, а не являются атомарными операциями, которые просто перенаправляют вызовы другим объектам.
Надеюсь, это поможет.