【问题标题】:Send emails with HTML/CSS in line with CakePHP使用符合 CakePHP 的 HTML/CSS 发送电子邮件
【发布时间】:2015-08-08 07:09:58
【问题描述】:

我正在尝试做一个“简单”的事情,需要发送一个风格化的电子邮件,不想只发送文本,需要插入 HTML 标签和 CSS。在使用 CakePHP 之前,我使用的是 PHPMailer,在那里我可以发送带有 HTML 和 CSS 的电子邮件。

我正在开发一个使用 CakePHP 框架的项目。 在文档中,在我看来,他可以像我一样发送带有嵌入式 CSS 的电子邮件,但所有发送的电子邮件都带有 HTML 标记,就像它们是简单的文本一样显示。

$ Email = new CakeEmail ('smtp');
$ Email-> template ('contact');
$ Email-> emailFormat ('html');
$ Email-> to ('****************');
$ Email-> subject ('Contact - Contact Us');
$ Email-> viewVars (array ('contact' => $ this-> request-> data));
$ Email-> send ();

这是我用来发送电子邮件和查看的代码:

<Html>
<Body>
    <P> <strong> Contact Received </ strong> </ p>

    ? <P> Date: <strong> <? Php echo date ("d / m / Y"); ?> </ Strong> </ p>
    <P> Name: <strong> </ strong> </ p> <? Php echo $ contact ['Contact'] ['name']?>
    <P> Telephone: <strong> <? Php echo $ contact ['Contact'] ['phone']?> </ Strong> </ p>
    <P> Email: <strong> <? Php echo $ contact ['Contact'] ['email']> </ strong> </ p>
    <P> Subject: <strong> <? Php echo $ contact ['Contact'] ['subject']?> </ Strong> </ p>
    <P> Message: <strong> <? Php echo $ contact ['Contact'] ['message']?> </ Strong> </ p>
</ Body>

但是当我将参数$email-&gt; emailFormat ('html'); 发送到的消息留空时,当我删除此参数时,将默认(文本)消息与屏幕上的 HMTL 一起到达,就好像它是纯文本一样,如果我把它放到“两者”什么都不做。

这个布局:

<?php echo $this->fetch('content'); ?>

【问题讨论】:

  • 这里有几种方法。使用 CSS-inline 包为你做这件事(他们就在那里)。这在视图类中可能是合适的,然后使用该类的电子邮件将自动 css-inline 呈现的内容。另一种方法是使用一个助手,它只对返回带有内联 css 的 html 的项目(按钮等)具有特殊方法。编辑:在我注意到它正在打印 html 之前,我先阅读了标题。我会留下评论,因为我觉得它很有用。至于打印 HTML,您的电子邮件客户端是否配置为接收 HTML?
  • @jeremyharris 你好,我不知道我是否明白你的意思。但是电子邮件收到这些测试电子邮件是 gmail,当我在另一家公司使用 phpmailer 时,我可以在没有他的情况下发送 html,以纯文本形式编写......带有内联 css 的电子邮件,他可以解释这一点,我相信问题出在 mimeType 或标题
  • 使用emailFormat 发送为html 就足够了,不需要发送额外的标头。尝试使用基本 HTML,即&lt;p&gt;test&lt;/p&gt;,然后从那里添加。还要确保您的视图没有 &lt;html&gt;/&lt;body&gt;,因为您的 HTML 电子邮件 layout 可能已经有这些标签。
  • @jeremyharris 如果我发送$email-&gt;send('&lt;p&gt; Hello &lt;/ p&gt;') 并且对模板行电子邮件的评论正确到达,即不显示标签 p,那么您对我有所帮助。但是当我添加模板时,不显示内容
  • 最好编辑您的问题并包含更多信息,例如模板视图和模板布局。我无法通过 cmets 与您一起调试。

标签: php cakephp html-email


【解决方案1】:

我不确定出了什么问题,但在两者都设法解决之后:

首先,我删除了电子邮件布局的 head boy html 标签 其次,我注意到我的模板的 html 文件夹是空的,而模板 txt 文件夹是有价值的,在 html 文件夹中添加值后一切工作文件。

【讨论】:

    猜你喜欢
    • 2014-09-23
    • 1970-01-01
    • 2014-01-17
    • 2014-02-12
    • 1970-01-01
    • 1970-01-01
    • 2010-11-12
    • 2011-11-12
    • 2018-01-07
    相关资源
    最近更新 更多