Yii2电子邮件模板问题

时间:2016-02-21 18:29:25

标签: email yii2

您好我在创建电子邮件时遇到两个问题。

首先是页脚重复:

<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();

感谢所有

加布里埃尔

2 个答案:

答案 0 :(得分:0)

第一个问题: 也许还有其他文件中包含的另一个文件,其中该文件包含在电子邮件布局中,请再次检查。

第二个问题: 您可以在php.ini中禁用错误​​通知,或者如果您想在变量之前快速添加@。 例如: $ name 更改为 @ $ name

对于同样的错误,你只需在开始变量中添加@。

答案 1 :(得分:0)

在您的示例中,您需要替换模板名称 不需要明确指定Becouse layouts / html 。 在这里看到我的答案 https://stackoverflow.com/a/42960246/1932494