我有这样的控制器:
$mail = Yii::$app->mailer->compose(['html'=>'@app/mail/layouts/html',],['content'=>$_POST["msg"]])
->setFrom([Yii::$app->params['admin_email']=>Yii::$app->params['admin_name'])
->setTo($_POST["to"])
->setSubject($_POST["subject"]);
$mail->send();
在我的邮件模板中,位于@app/mail/layouts/html
<?php $this->beginBody() ?>
This is Email Introduction
<?= $content ?>
<?php $this->endBody() ?>
已成功发送电子邮件,但是当我要检查生成两次的收件箱"This is Email Introduction"
时。您可以查看my latest message here。
我的收件箱会收到如下消息:
This is Email Introduction
This is Email Introduction
ini pesan Pesan ke dua
我的代码有问题吗?
答案 0 :(得分:0)
我很抱歉,我找到了答案。这是@app/config/web.php
部分的配置component's
:
'components'=>[
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
'viewPath' => '@app/mail',
'useFileTransport' => false,
'transport' => [
'class'=>'Swift_SmtpTransport',
'host'=>'host.domain.tld', //sample
'username'=>'my@emaul.com', //sample email
'password'=>'~!@#$%%^&&', // sample password
'port'=>'465',
'encryption'=>'ssl',
],
],
],
我忘记了此部分'viewPath' => '@app/mail'
作为Swiftmailer的主要布局,并在我们调用send()
函数时发送。
所以当我们有这样的代码时:
$mail = Yii::$app->mailer->compose(['html'=>'@app/mail/layouts/html',],['content'=>$_POST["msg"]])
->setFrom([Yii::$app->params['admin_email']=>Yii::$app->params['admin_name'])
->setTo($_POST["to"])
->setSubject($_POST["subject"]);
$mail->send();
部分['html'=>'@app/mail/layouts/html']
告诉我们将使用 VIEW