【问题标题】:Sending an entire html page with phpmailer使用 phpmailer 发送整个 html 页面
【发布时间】:2016-12-09 06:38:34
【问题描述】:

我购买了一个电子邮件模板并将其自定义为我想要的,但现在我不知道如何发送它。

模板文件是一个完整的 html 页面,其中包含字体,甚至顶部的样式表(实际上是样式标签,不是附件),带有媒体查询和一些字体设置。

我会发送所有这些吗?包括标题标签等等?它基本上是一个完整的 html 页面。

我的电子邮件脚本现在是如何构建的:

$mail->isHTML(true); 
$texts = 'html template';
$mail->msgHTML($texts);

但是我还没有测试我自己的代码,因为模板文件充满了单引号和双引号。所以变量不喜欢这样,我尝试将模板字符串中的所有单引号替换为双引号,但后来我的字体不再工作(我使用此站点远程测试:https://putsmail.com/)。

【问题讨论】:

  • 您的 PHP 经验水平如何?
  • @hungerstar 不是专家,但我能理解大多数 php。我有一些经验。
  • @twan $html = file_get_contents('your_template.html'); !
  • @IsmailRBOUH 谢谢!如何在该外部邮件中使用变量?喜欢发布的名字吗?当我回显变量时,它只会在我的电子邮件中显示为空。

标签: html css email phpmailer


【解决方案1】:

PHPMailer 本身不会对 HTML 内容做任何特殊处理(尽管msgHTML 会读取您的内容以制作粗略的纯文本版本)。听起来您只是在引用内联内容时遇到了麻烦。您可能想尝试一种称为nowdoc 的不同引用形式,它可以毫无问题地容忍各种引用:

$texts = <<<'EOT'
html template
EOT;
$mail->msgHTML($texts);

您也可以将其保存在外部文件中,并在需要时读取它,这也避免了引用问题:

$mail->msgHTML(file_get_contents('template.html'));

【讨论】:

  • 太好了,行得通!但是如何使用 $name 之类的变量(在其中发布名称)?我认为将其回显到外部文件中是行不通的。
  • 只需使用heredoc。变量插值是heredoc和nowdoc的主要区别。您可以使用include 在呈现的外部文件中包含 PHP 值,但到那时您最好还是使用模板语言来更好地处理它。
  • hmm 以前从未听说过,我必须阅读更多内容才能理解。
  • 请注意,EOT 字符串可以是任何不太可能出现在文本中的字符串,它只是一种明确标记文本结尾的方式 - “EOT”没有什么特别之处 - 我认为这是对“文本结尾”或其他内容的模糊引用。
  • 您所说的是在字符串中使用变量的方法,对吧?我的意思是将表单中的数据发布到mail_send.php,其中电子邮件模板加载了file_get_contents,但该模板文件不能直接访问发布的数据,所以我试图了解如何显示发布的模板布局内的数据。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 2023-03-27
  • 2015-07-02
  • 2010-11-22
  • 2014-12-19
相关资源
最近更新 更多