【发布时间】:2017-05-02 12:47:08
【问题描述】:
我正在使用 CakePHP 3.4
我已设置 Mailer 在注册后向用户发送验证电子邮件。
/src/Mailer/UserMailer.php
<?php
namespace App\Mailer;
use Cake\Mailer\Mailer;
class UserMailer extends Mailer
{
public function verify($user)
{
$this
->setProfile('no-reply')
->setTemplate('register')
->setLayout('authentication')
->setEmailFormat('html')
->setTo($user->email)
->setSubject('Verify Account')
->setViewVars(['name' => $user->first_name, 'email' => $user->email, 'hash' => $user->verification_hash]);
}
public function implementedEvents()
{
return [
'Model.afterSave' => 'onRegistration'
];
}
public function onRegistration(Event $event, EntityInterface $entity, ArrayObject $options)
{
if ($entity->isNew()) {
$this->send('verify', [$entity]);
}
}
}
但是,它没有发送任何电子邮件。
使用控制器手动触发时正在发送电子邮件
$this->getMailer('User')->send('verify', [$user]);
【问题讨论】:
-
感谢 ndm,能否检查邮件是否发送,是否通过邮件发送?
-
取决于你的意思。在什么背景/情况下?
标签: cakephp mailer cakephp-3.4