1

我在 php 方面并不那么出色,请原谅我。

所以我正在使用 PHP 发送一封 html 电子邮件。

经过一些研究,我使用表格构建了一个并编写了一个类似于你们中许多人将使用的 PHP 发送脚本。

我知道内联样式似乎是最常用的添加样式的方法。

当我在 $headers 之前定义 $message 变量时,这样的事情可能吗?

$message = " 

  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>BPN UK Contact Request</title>
    <style type="text/css">

     .exampleclass { 
       CSS Rules
     }

    </style>

    REST OF HTML LAYOUT, INCEPTION TABLES ETC ETC

"

或者我是否必须通过标签等方式对其进行内联样式,这样似乎需要更多的工作和更多的限制。

对不起,如果这是一个愚蠢的问题。

4

5 回答 5

3

这是完全可以接受的,但要意识到许多基于 Web 的邮件客户端将替换/修改内联 CCS 以防止该 CSS 影响“容器”网络邮件站点。保持 CSS 简单,不要尝试花哨的样式。

于 2013-05-23T20:22:19.513 回答
2

您执行此操作的方式应该可以正常工作,但是您需要记住一些事项。首先是你需要确保有一个内容类型的标题。这告诉浏览器将消息显示为 HTML。如果你不这样做,你会收到一封带有一大堆纯文本的 html 标签的电子邮件。这样的事情就足够了:

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

此外,将 HTML 中的双引号 (") 替换为单引号 ('),因为双引号指示 $message 的开始和结束。

于 2013-05-23T20:29:37.790 回答
1

您还可以尝试:

    <?php
   //include CSS Style Sheet
   echo "<link rel='stylesheet' type='text/css' href='path-to-css-file' />";

   //include a javascript file
   echo "<script type='text/javascript' src='path-to-javascript-file'></script>";
?>
于 2013-05-23T20:26:49.437 回答
0

作为一个为工作编写了几百个电子邮件模板的人,如果您想最大限度地提高兼容性并将纯文本版本发送到,我建议只使用内联 css 发送电子邮件。

于 2013-05-23T20:32:11.103 回答
0

是的,一切都需要内联,但实际上这非常笨拙而且不是很干燥。

在工作中,我们使用类InlineStyle允许您<head>像往常一样将所有 CSS 放入文档的样式。所以你得到了内联样式,但是你像往常一样在<head>. 效果很好。

于 2013-05-23T20:34:35.017 回答