phalcon / incubator-mailer
Phalcon Incubator Mailer Adapters
Fund package maintenance!
phalcon
Open Collective
Requires
- php: >=7.4
- ext-json: *
- ext-phalcon: ^5.0
- phpmailer/phpmailer: ^6.7
Requires (Dev)
- codeception/codeception: ^4.2
- codeception/module-asserts: ^2.0
- phalcon/ide-stubs: ^5.0
- phpstan/phpstan: ^1.10
- squizlabs/php_codesniffer: ^3.7
- vimeo/psalm: ^5.9
- vlucas/phpdotenv: ^5.5
This package is auto-updated.
Last update: 2024-11-07 03:10:00 UTC
README
Usage examples of the mailer wrapper over PHPMailer for Phalcon:
Configure
SMTP
$config = [ 'driver' => 'smtp', 'host' => 'smtp.gmail.com', 'port' => 465, 'encryption' => 'ssl', 'username' => 'example@gmail.com', 'password' => 'your_password', 'from' => [ 'email' => 'example@gmail.com', 'name' => 'YOUR FROM NAME' ] ];
Sendmail
$config = [ 'driver' => 'sendmail', 'sendmail' => '/usr/sbin/sendmail -bs', 'from' => [ 'email' => 'example@gmail.com', 'name' => 'YOUR FROM NAME' ] ];
Send message
createMessage()
$mailer = new \Phalcon\Incubator\Mailer\Manager($config); $message = $mailer->createMessage() ->to('example_to@gmail.com', 'OPTIONAL NAME') ->subject('Hello world!') ->content('Hello world!'); // Set the Cc addresses of this message. $message->cc('example_cc@gmail.com'); // Set the Bcc addresses of this message. $message->bcc('example_bcc@gmail.com'); // Send message $message->send();
createMessageFromView()
// To create message with View, you need to define in the DI the component simple View. $this->di->set( 'simple', function () use ($config) { $view = new Phalcon\Mvc\View\Simple(); $view->setViewsDir($config->application->viewsDir); return $view; }, true ); $this->di->setShared('view', function () use ($config) { $view = new Phalcon\Mvc\View($this->di); $view->setViewsDir($config->application->viewsDir); $view->registerEngines([ '.volt' => function ($view) { $volt = new Phalcon\Mvc\View\Engine\Volt($view, $this->di); $volt->setOptions([ 'path' => $config->application->cacheDir, 'separator' => '_' ]); return $volt; }, '.phtml' => Phalcon\Mvc\View\Engine\Php::class ]); return $view; }); $mailer = new \Phalcon\Incubator\Mailer\Manager($config); // view relative to the folder viewsDir (REQUIRED) $viewPath = 'email/example_message'; // Set variables to views (OPTIONAL) $params = [ 'var1' => 'VAR VALUE 1', 'var2' => 'VAR VALUE 2', // ... 'varN' => 'VAR VALUE N' ]; $message = $mailer->createMessageFromView($viewPath, $params) ->to('example_to@gmail.com', 'OPTIONAL NAME') ->subject('Hello world!'); // Set the Cc addresses of this message. $message->cc('example_cc@gmail.com'); // Set the Bcc addresses of this message. $message->bcc('example_bcc@gmail.com'); // Send message $message->send();
Events
https://docs.phalcon.io/5.0/en/events
All events are callables with at least 2 arguments
Look for each event down below for more informations of the third argument
- mailer:beforeCreateMessage function (Phalcon\Events\Event $event, Phalcon\Incubator\Mailer\Manager $manager, null) {}; - mailer:afterCreateMessage function (Phalcon\Events\Event $event, Phalcon\Incubator\Mailer\Manager $manager, Phalcon\Incubator\Mailer\Message $message) {}; - mailer:beforeSend function (Phalcon\Events\Event $event, Phalcon\Incubator\Mailer\Message $message, null) {}; - mailer:afterSend 2 arguments, the number of sent mails and an array of emails representing the failed recipients function (Phalcon\Events\Event $event, Phalcon\Incubator\Mailer\Message $message, [int $count, array $failedRecipients]) {}; - mailer:beforeAttachFile function (Phalcon\Events\Event $event, Phalcon\Incubator\Mailer\Message $message, null) {}; - mailer:afterAttachFile 1 argument, an array with the attachment informations function (Phalcon\Events\Event $event, Phalcon\Incubator\Mailer\Message $message, array $attachment) {}; 0: string (path of the file or encoded data) 1: string (name of the attachment) 2: string (basename of the attachment) 3: string (encoding) 4: string (MIME type) 5: bool (false -> encoded data, true -> from a file) 6: string (disposition of the mail) 7: string|0 (if from a file, name of the file)