【问题标题】:How to properly send Html-mail with plain text alternative from octobercms?如何正确发送带有来自 octobercms 的纯文本替代的 Html 邮件?
【发布时间】:2020-06-10 12:21:28
【问题描述】:

我正在使用 october 的邮件门面发送电子邮件。在文档中是这样写的:

默认情况下,发送方法的视图假定包含 HTML。但是,通过将数组作为第一个参数传递给 send 方法,除了 HTML 视图之外,您还可以指定要发送的纯文本视图:

Mail::send(['acme.blog::mail.html', 'acme.blog::mail.text'], $data, $callback);

但是当我这样做时,mail.text 视图文件将被忽略。对于消息的纯文本部分,还使用了 mail.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');
    });

我尝试了使用和不使用数组键。第一个视图文件始终用于两个部分。我认为,这是一个错误。

【问题讨论】:

  • 你能分享你发送邮件的代码吗?

标签: octobercms octobercms-plugins


【解决方案1】:

我相信数组中项目的顺序很重要。文档说:

默认情况下,给发送方法的视图假定包含 HTML。但是,通过将数组作为第一个参数传递给发送 方法,你可以指定一个纯文本视图来发送除了 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>

【讨论】:

  • 我认为这是一个错误。我已经尝试了所有变体。第一个文件始终用于两个部分。
【解决方案2】:

https://octobercms.com/forum/post/mail-with-plain-text-alternativemjauvin 给出了一个对我有用的答案:

我不知道,但您可以在同一个视图文件中同时拥有两个视图(纯文本和 html)。

【讨论】:

    猜你喜欢
    • 2017-04-23
    • 1970-01-01
    • 2015-06-15
    • 2011-04-04
    • 2021-09-01
    • 2013-06-10
    • 2016-07-03
    • 2019-10-06
    • 2016-03-13
    相关资源
    最近更新 更多