【问题标题】:CakePHP emailFormat('both') vs emailFormat('html') and emailFormat('text')CakePHP emailFormat('both') 与 emailFormat('html') 和 emailFormat('text')
【发布时间】:2019-05-04 11:43:00
【问题描述】:

在 cakephp 文档中指出,如果您像这样设置,则可以同时使用文本和 html 模板文件:

$email = new Email();
$email
    ->template('welcome', 'fancy')
    ->emailFormat('both')
    ->to('bob@example.com')
    ->from('app@domain.com')
    ->send();

这将使用以下模板文件:

src/Template/Email/text/welcome.ctp   
src/Template/Layout/Email/text/fancy.ctp   
src/Template/Email/html/welcome.ctp   
src/Template/Layout/Email/html/fancy.ctp

它如何在这里同时使用 html 和文本文件?创建视图时是否同时检查文本文件和 html 文件?如果这些模板有差异怎么办?

【问题讨论】:

    标签: cakephp cakephp-3.0


    【解决方案1】:

    emailFormat 设置为both 时,CakePHP 会将两个模板都放入电子邮件中,并将邮件的 Content-type 标头设置为multipart/alternative。通过这种行为,接收端将获得同一消息的两个版本,并且可以选择使用哪个版本。

    这意味着您可以向可以显示它的用户提供丰富而华丽的 HTML 版本的电子邮件,还可以提供简单的纯文本版本的消息,这些消息将被无法(或拒绝)呈现 HTML 电子邮件的电子邮件客户端使用.

    更多信息,请查看this question and answer,以及RFC

    【讨论】:

    • Szymon 谢谢。我正在处理现有项目,无法理解同时使用这两个模板的原因。
    猜你喜欢
    • 2015-12-27
    • 2015-12-15
    • 1970-01-01
    • 2017-01-09
    • 2013-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多