Mailer wrapper over SwiftMailer for Phalcon.
Install composer in a common location or in your project:
curl -s http://getcomposer.org/installer | php
Create the composer.json file as follows:
{
"require": {
"phalcon-ext/mailer": "~2.0"
}
}
Run the composer installer:
php composer.phar install
Add in your the code
require_once('vendor/autoload.php');
SMTP
$config = [
'driver' => 'smtp',
'host' => 'smtp.gmail.com',
'port' => 465,
'encryption' => 'ssl',
'username' => '[email protected]',
'password' => 'your_password',
'from' => [
'email' => '[email protected]',
'name' => 'YOUR FROM NAME'
]
];
Warning If you are using GMAIL and get error
...Username and Password not accepted...
orpassword incorrect
, please using password token (how get token?) and fix in configuration... 'username' => '[email protected]', 'password' => 'your_password_token', ...
Sendmail
$config = [
'driver' => 'sendmail',
'sendmail' => '/usr/sbin/sendmail -bs',
'from' => [
'email' => '[email protected]',
'name' => 'YOUR FROM NAME'
]
];
PHP Mail
$config = [
'driver' => 'mail',
'from' => [
'email' => '[email protected]',
'name' => 'YOUR FROM NAME'
]
];
$mailer = new \Phalcon\Ext\Mailer\Manager($config);
$message = $mailer->createMessage()
->to('[email protected]', 'OPTIONAL NAME')
->subject('Hello world!')
->content('Hello world!');
// Set the Cc addresses of this message.
$message->cc('[email protected]');
// Set the Bcc addresses of this message.
$message->bcc('[email protected]');
// Send message
$message->send();
Warning If you want to use as a template engine VOLT (.volt), please setup "view" service according to the official docs Phalcon
/**
* Global viewsDir for current instance Mailer\Manager.
*
* This parameter is OPTIONAL, If it is not specified,
* use DI from "view" service (getViewsDir)
*/
$config['viewsDir'] = __DIR__ . '/views/email/';
$mailer = new \Phalcon\Ext\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',
];
/**
* The local path to the folder viewsDir only this message. (OPTIONAL)
*
* This parameter is OPTIONAL, If it is not specified,
* use global parameter "viewsDir" from configuration.
*/
$viewsDirLocal = __DIR__ . '/views/email/local/';
$message = $mailer->createMessageFromView($viewPath, $params, $viewsDirLocal)
->to('[email protected]', 'OPTIONAL NAME')
->subject('Hello world!');
// Set the Cc addresses of this message.
$message->cc('[email protected]');
// Set the Bcc addresses of this message.
$message->bcc('[email protected]');
// Send message
$message->send();
- mailer:beforeCreateMessage
- mailer:afterCreateMessage
- mailer:beforeSend
- mailer:afterSend
- mailer:beforeAttachFile
- mailer:afterAttachFile