Отправляем почту в PHP в 2019 опубликовал Shuchkin\SimpleMail
$mail = new Shuchkin\SimpleMail();
$mail->setFrom('example@example.com')
->setTo('sergey.shuchkin@gmail.com')
->setSubject('Test SimpleMail')
->setText('Hi, Sergey!')
->send();
Возможности
- Сборка письма цепочкой вызовов
- Расширенная поддержка встроенной функции mail
- Встроенный SMTP клиент (TLS)
- Фабричные методы, один раз указали метод отправки и почту отправителя, а дальше отправляем через копию этого базового объекта
- Передача файлов
- UTF-8
- Свои заголовки
- Свой метод отправки
- Экспорт в массив или JSON
- Импорт из массива или JSON
Установка
Залит на GitHub, см. больше примеров
https://github.com/shuchkin/simplemail
И, конечно, на Packagist:
$ composer require shuchkin/simplemail
Асинхронная отправка почты PHP — react-smtp-client
Мне не хватало в ReactPHP простого инструмента для асинхронной отправки почты, так появился react-smtp-client
$loop = \React\EventLoop\Factory::create();
// у меня установлен postfix, в котором есть локальный smtp сервер
$smtp = new \Shuchkin\ReactSMTP\Client( $loop ); // localhost:25
$smtp->send('info@example.org', 'sergey.shuchkin@gmail.com', 'Test ReactPHP mailer', 'Hello, Sergey!')->then(
function() {
echo 'Message sent'.PHP_EOL;
},
function ( \Exception $ex ) {
echo 'SMTP error '.$ex->getCode().' '.$ex->getMessage().PHP_EOL;
}
);
$loop->run();
Получился аналог mail() для фреймворка ReactPHP. Можно подключаться хоть к GMail:
$smtp = new \Shuchkin\ReactSMTP\Client( $loop, 'tls://smtp.google.com:465', 'username@gmail.com','password' );
хоть к серверу Яндекс.Почты:
$smtp = new \Shuchkin\ReactSMTP\Client( $loop, 'tls://smtp.yandex.ru:465', 'username@yandex.ru', '**password**' );
Устанавливается через composer
composer require shuchkin/react-smtp-client