Php 如果使用邮件视图,是否必须在Yii 2邮件程序中设置HtmlBody/TextBody?

Php 如果使用邮件视图,是否必须在Yii 2邮件程序中设置HtmlBody/TextBody?,php,yii,yii2,Php,Yii,Yii2,一直在阅读yii2中的内容,注意到您可以在邮件视图中传递 例如: Yii::$app->mailer->compose([ 'html' => 'contact-html', 'text' => 'contact-text', ]); …以及使用邮件布局 但是,我的问题是,如果您的所有内容都将包含在视图中,那么以下内容的目的是什么: // Set body $mail->setHtmlBody($email_data['html_msg']); $

一直在阅读
yii2
中的内容,注意到您可以在邮件视图中传递

例如:

Yii::$app->mailer->compose([
    'html' => 'contact-html',
    'text' => 'contact-text',
]);
…以及使用邮件布局

但是,我的问题是,如果您的所有内容都将包含在视图中,那么以下内容的目的是什么:

// Set body
$mail->setHtmlBody($email_data['html_msg']);
$mail->setTextBody($email_data['message']);

您还需要设置它们吗?这是如何工作的?

我不明白您的问题,我必须仔细阅读

如果要使用HTML模板呈现和其他文本呈现,请执行以下操作:

Yii::$app->mail->compose(['html' => '@app/mail-templates/html-email-01', 'text' => '@app/mail-templates/mail'], [/*Some params for the view */])
     ->setFrom('from@me.com')
     ->setTo('someone@domain.com')
     ->setSubject('An email')
     ->send();
视图的路径也可以是相对的,就像在控制器内部一样 (例如,['html'=>'html-email-01'])

在你的帖子里你提到

Yii::$app->mailer->compose()
    ->setFrom('from@domain.com')
    ->setTo('to@domain.com')
    ->setSubject('Message subject')
    ->setTextBody('Plain text content')
    ->setHtmlBody('<b>HTML content</b>')
    ->send();

如果要使用邮件视图

则仍需将正文和邮件设置为初始化以发送邮件message@unixmiah我们给他们设定了什么?空字符串?哦,好吧。。。。。。现在我有点困惑,因为你的评论和你的回答不一样哈哈。。。。。。因此,如果我使用的是视图,我不必对
setHtmlBody
setxtbody
执行任何操作,对吗?对不起,我写的答案就像我在写代码一样。不,你没有。
$mail->setHtmlBody($email_data['html_msg']);
$mail->setTextBody($email_data['message']);