Как отправить письмо по smtp используя zend framework 2?

Пользователь

от greyson , в категории: PHP , год назад

Как отправить письмо по smtp используя zend framework 2?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от pauline , год назад

@greyson 

Для отправки письма по SMTP в Zend Framework 2 необходимо выполнить следующие шаги:

  1. Установите библиотеку ZendMail, если еще не установлена:
1
composer require zendframework/zend-mail


  1. Создайте экземпляр класса ZendMailMessage, который будет представлять ваше письмо:
1
2
3
4
5
$message = new ZendMailMessage();
$message->setSubject('Заголовок письма');
$message->setBody('Текст письма');
$message->setFrom('от кого@example.com');
$message->addTo('кому@example.com');


  1. Создайте экземпляр класса ZendMailTransportSmtp, который будет представлять SMTP сервер, через который вы хотите отправить письмо. Например:
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. Отправьте письмо используя send() метод, передавая экземпляры Message и Transport:
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);