我正在使用十月的邮件门面来发送电子邮件。在文档中写道:
默认情况下,假定提供给 send 方法的视图包含 HTML。但是,通过将数组作为第一个参数传递给 send 方法,除了 HTML 视图之外,还可以指定要发送的纯文本视图:
Mail::send(['acme.blog::mail.html', 'acme.blog::mail.text'], $data, $callback);
但是当我这样做时,mail.text 视图文件被忽略了。对于邮件的纯文本部分,还使用邮件.html视图文件,其中包含换行前的<br />
。
我错过了什么吗?还是这是一个错误?
我的代码:
$vars = ['msg' => 'Hello world'];
Mail::send(
['text' => 'respective.test::mails.text',
'html' => 'respective.test::mails.html'],
$vars, function($message) {
$message->to('name@example.com');
$message->subject('Test message');
});
我尝试过有和没有数组键。第一个视图文件始终用于这两个部分。我认为,这是一个错误。
我相信数组中项目的顺序很重要。文档说:
默认情况下,假定提供给 send 方法的视图包含 .HTML。但是,通过将数组作为第一个参数传递给发送 方法,除了 网页视图:
Mail::send(['acme.blog::mail.html', 'acme.blog::mail.text'], $data, $callback);
措辞表明数组中的第一项将是html
,第二项将是text
。即使它不是明确的。
以防万一有人对OP的答案感到困惑。邮件模板文件可以在一个文件中保存标题、文本、html,由==
分隔。
subject = "Your product has been added to OctoberCMS project"
==
Hi {{ name }},
Good news! User {{ user }} just added your product "{{ product }}" to a project.
This message was sent using no formatting (plain text)
==
<p>Hi {{ name }},</p>
<p>Good news! User {{ user }} just added your product <strong>{{ product }}</strong> to a project.</p>
<p>This email was sent using formatting (HTML)</p>
https://octobercms.com/forum/post/mail-with-plain-text-alternative mjauvin 给出了一个对我有用的答案:
我不知道,但您可以在同一个视图文件中同时拥有两个视图(纯文本和 html(。