如何在CakePHP 3中使用电子邮件传输类“ Debug ”查看结果(最终邮件)?或者在哪里可以找到返回的结果?本书中没有有关电子邮件调试的详细信息。
在config/app.php
里面说
// Each transport needs a `className`. Valid options are as follows:
// - Mail : Send using PHP mail function
// - Smtp : Send using SMTP
// - Debug : Do not send the email, just return the result
所以我设定
'EmailTransport' => [
'default' => [
'className' => 'Debug',
],
],
并在测试控制器中:
namespace App\Controller;
use App\Controller\AppController;
use Cake\Event\Event;
use Cake\Network\Exception\NotFoundException;
use Cake\Mailer\Email;
class TestsController extends AppController {
public function email_test() {
$email = new Email('default');
$email->from(['[email protected]' => 'My Site'])
->to('[email protected]')
->subject('Here the subject')
->send('Here the mail content'));
}
}
但是结果(最终邮件)保存或显示在哪里?
我期望Debug结果位于/tmp/
或中,/logs/
但在那里找不到有关最终邮件的任何信息。
如果我在浏览器(localhost/test/email_test/
)中查看测试页,则不会显示任何内容(因为我不知道要在视图模板中添加什么以进行电子邮件调试)。CakePHP-DebugKit中也没有有关邮件的信息...
(如果相关的话,我目前正在使用CakePHP 3.1 beta对此进行测试)
该Email::send()
方法将返回结果。它总是返回邮件内容,只是Debug
传输实际上没有发送它。
$result = $email->...->send('Here the mail content');
debug($result);
https://github.com/cakephp/.../3.1.0-beta2/src/Mailer/Transport/DebugTransport.php#L36
我猜文档中的一些更多细节不会受到伤害。
如果要记录邮件,则必须使用log
选项在传输配置中启用/配置记录。默认情况下,它设置为false
。
'log'
:日志级别,用于记录电子邮件标题和消息。true
将使用LOG_DEBUG
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句