Skip to content

shuchkin/react-smtp-client

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

react-smtp-client v0.2

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('[email protected]', '[email protected]', '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', '[email protected]','password' );

$recipients = ['[email protected]','[email protected]'];

foreach( $recipients as $to ) {

    $smtp->send('[email protected]', $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( '[email protected]' );
$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( ['[email protected]', '[email protected]'] )
    ->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

About

ReactPHP async SMTP Client to send a simple email

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages