Makes CakePHP 3's Email
even better by adding:
- Default email layout with basic styling (safe for emails)
EmailHelper
which extendsHtmlHelper
to automatically format paragraphs, links, etc.- Built-in support/configuration for major providers (Mailchimp, Sendgrid, Mandrill, etc.) - coming soon.
- Admin email preview - coming soon.
Using Composer:
composer require gourmet/email:~3.0
You then need to load the plugin. In boostrap.php
, something like:
\Cake\Core\Plugin::load('Gourmet/Email');
Change your default
email configuration (or create a new one) in config/app.php
:
'Email' => [
'default' => [
'transport' => 'default',
'from' => 'you@localhost',
'layout' => 'Gourmet/Email.default',
'helpers' => ['Html', 'Gourmet/Email.Email'],
'emailFormat' => 'both',
]
]
In your email views, you can now use the Gourmet/Email.Email
helper:
// app/Template/Email/html/welcome.ctp
Welcome <?= $user['username'] ?>
Please confirm your account by clicking on the link below:
<?= $this->Email->link('Confirm account', '/') ?>
If for any reason, you are unable to click the link above, copy/paste the following to your browser's address bar:
<?= \Cake\Routing\Router::url('/') ?>
Thank you for choosing us,
Company name
<?= $this->Email->image('logo.jpg') ?>
For the text
version, you only need to symlink the same template. We'll symlink all text
templates to html
:
$ ln -s html app/Template/Email/text
It's finally ready to send an email:
$email = new Email();
$email->to('john@doe.com');
$email->template('welcome');
$email->viewVars(['user' => ['username' => 'johndoe']]);
$email->send();
- Fork
- Mod, fix
- Test - this is important, so it's not unintentionally broken
- Commit - do not mess with license, todo, version, etc. (if you do change any, bump them into commits of their own that I can ignore when I pull)
- Pull request - bonus point for topic branches
http://github.com/gourmet/emails/issues
Copyright (c) 2014, Jad Bitar and licensed under The MIT License.