shuchkin / react-smtp-client
ReactPHP async SMTP Client
Installs: 4 393
Dependents: 0
Suggesters: 0
Security: 0
Stars: 22
Watchers: 4
Forks: 3
Open Issues: 0
Requires
- php: >=5.3.0
- evenement/evenement: ^3.0 || ^2.0 || ^1.0
- react/event-loop: ^1.0 || ^0.5
- react/promise: ^2.2
- react/socket: ^1.0 || ^0.8
This package is auto-updated.
Last update: 2024-12-19 15:17:49 UTC
README
ReactPHP async SMTP client to send a emails like php mail(). Simple UTF-8 text/plain messages out-of-the-box.
Basic Usage
$loop = \React\EventLoop\Factory::create(); $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();
Google SMTP Server – How to send bulk emails for free
$loop = \React\EventLoop\Factory::create(); $smtp = new \Shuchkin\ReactSMTP\Client( $loop, 'tls://smtp.gmail.com:465', 'username@gmail.com','password' ); $recipients = ['sergey.shuchkin@gmail.com','example@example.com']; foreach( $recipients as $to ) { $smtp->send('username@gmail.com', $to, 'Test ReactPHP mailer', 'Hello, Sergey!')->then( function() use ( $to ) { echo 'Message to '.$to.' sent via Google SMTP'.PHP_EOL; }, function ( \Exception $ex ) use ( $to ) { echo 'Message to '.$to.' not sent: '.$ex->getMessage().PHP_EOL; } ); } $loop->run();
Google limit for personal SMTP 99 messages per 24 hours.
Using mime/mail class, send mails and attachments
See https://github.com/shuchkin/simplemail
$ composer require shuchkin/simplemail
$smtp = new \Shuchkin\ReactSMTP\Client( $loop, 'example.com:25', 'username', 'password' ); // setup fabric $sm = new \Shuchkin\SimpleMail(); $sm->setFrom( 'example@example.com' ); $sm->setTransport( function ( \Shuchkin\SimpleMail $m, $encoded ) use ( $smtp ) { $smtp->send( $m->getFromEmail(), $encoded['to'], $encoded['subject'], $encoded['message'], $encoded['headers'] ) ->then( function () { echo "\r\nSent mail"; }, function ( \Exception $ex ) { echo "\r\n" . $ex->getMessage(); } ); }); // send mail $sm->to( ['sergey.shuchkin@gmail.com', 'reactphp@example.com'] ) ->setSubject('Async mail with ReactPHP') ->setText('Async mail sending perfect! See postcard') ->attach('image/postcard.jpg') ->send();
Install
The recommended way to install this library is through Composer. New to Composer?
This will install the latest supported version:
$ composer require shuchkin/react-smtp-client
Changelog
0.2 (2020-02-19) - basic UTF-8 text/plain messages out-of-the-box, ReactPHP actual versions in composer.json
0.1.1 (2019-03-12) - Initial release