您好我在创建电子邮件时遇到两个问题。
首先是页脚重复:
<div class="footer">With kind regards, <?= Yii::$app->name ?> team</div>
打印两次相同的文字
第二个是变量:
Yii::$app->mailer->compose('@app/mail/layouts/html',
['content' => $text,
'name'=>'the name',
在视图模板中我只是尝试获取$ name
$name
,错误是:
Undefined variable: name
同样的情况发生在$ image上,而不是$ content
我使用swiftmailer,这是我的特色:
'mailer' => [
'class' => 'yii\swiftmailer\Mailer',
// send all mails to a file by default. You have to set
// 'useFileTransport' to false and configure a transport
// for the mailer to send real emails.
'useFileTransport' => true,
],
useFileTransport设置为true但我认为不是问题
这是发送电子邮件的完整代码
Yii::$app->mailer->compose('@app/mail/layouts/html',
['content' => $text,
'name'=>'the name',
'image' => 'path/to/images/image.png',
])
->setFrom(Yii::$app->params['adminEmail'])
->setTo($email)
->setSubject($subject)
->send();
感谢所有
加布里埃尔
答案 0 :(得分:0)
第一个问题: 也许还有其他文件中包含的另一个文件,其中该文件包含在电子邮件布局中,请再次检查。
第二个问题: 您可以在php.ini中禁用错误通知,或者如果您想在变量之前快速添加@。 例如: $ name 更改为 @ $ name对于同样的错误,你只需在开始变量中添加@。
答案 1 :(得分:0)
在您的示例中,您需要替换模板名称 不需要明确指定Becouse layouts / html 。 在这里看到我的答案 https://stackoverflow.com/a/42960246/1932494