使用 phpmailer 发送整个 html 页面

Sending an entire html page with phpmailer

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

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

我要发送所有这些吗?包括 header 标签等等?它基本上是整个 html 页面。

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

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

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

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

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

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

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