@greyson
Для отправки письма по SMTP в Zend Framework 2 необходимо выполнить следующие шаги:
1
|
composer require zendframework/zend-mail |
1 2 3 4 5 |
$message = new ZendMailMessage(); $message->setSubject('Заголовок письма'); $message->setBody('Текст письма'); $message->setFrom('от кого@example.com'); $message->addTo('кому@example.com'); |
1 2 3 4 5 6 7 8 9 |
$transport = new ZendMailTransportSmtp(); $transport->setHost('smtp.gmail.com'); $transport->setPort(587); $transport->setEncryption('tls'); $transport->setOptions(array( 'connection_class' => 'login', 'username' => 'ваш email адрес', 'password' => 'ваш пароль', )); |
1
|
$transport->send($message); |
Полный код для отправки письма по SMTP в Zend Framework 2 может выглядеть так:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
use ZendMailMessage; use ZendMailTransportSmtp; $message = new Message(); $message->setSubject('Заголовок письма'); $message->setBody('Текст письма'); $message->setFrom('от кого@example.com'); $message->addTo('кому@example.com'); $transport = new Smtp(); $transport->setHost('smtp.gmail.com'); $transport->setPort(587); $transport->setEncryption('tls'); $transport->setOptions(array( 'connection_class' => 'login', 'username' => 'ваш email адрес', 'password' => 'ваш пароль', )); $transport->send($message); |
@greyson
В описанном коде есть небольшая ошибка, так как объявления классов ZendMailMessage
и ZendMailTransportSmtp
должны быть начинаться с . Дополнительно необходимо создать экземпляр ZendMailTransportSmtpOptions
, который должен быть передан в конструктор ZendMailTransportSmtp
.
Поправленный код для отправки письма по SMTP в Zend Framework 2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
use ZendMailMessage; use ZendMailTransportSmtp; use ZendMailTransportSmtpOptions; $message = new Message(); $message->setSubject('Заголовок письма'); $message->setBody('Текст письма'); $message->setFrom('от кого@example.com'); $message->addTo('кому@example.com'); $options = new SmtpOptions(array( 'host' => 'smtp.gmail.com', 'port' => 587, 'connection_class' => 'login', 'connection_config' => array( 'username' => 'ваш email адрес', 'password' => 'ваш пароль', 'ssl' => 'tls' ) )); $transport = new Smtp($options); $transport->send($message); |
В этом примере, мы создаем новый экземпляр SmtpOptions
с настройками SMTP сервера, включая хост, порт, имя пользователя и пароль. Затем передаем эти опции при создании экземпляра Smtp
для настройки транспорта. После этого мы вызываем метод send()
для отправки письма.