通过PHP发送包含CSS样式表的HTML电子邮件

通过PHP发送包含CSS样式表的HTML电子邮件,php,html,css,email,Php,Html,Css,Email,我想将包含CSS样式表的HTML页面发送到电子邮件帐户。问题是CSS样式表根本不可见。我必须内联每个CSS样式吗?这似乎是一种效率极低的方法。还有其他想法吗 以下是发送电子邮件的PHP代码: <?php $to = "myaccount@gmail.com"; // subject $subject = "Test mail"; // message $message = file_get_contents("index.html"); // from $from = "myacco

我想将包含CSS样式表的HTML页面发送到电子邮件帐户。问题是CSS样式表根本不可见。我必须内联每个CSS样式吗?这似乎是一种效率极低的方法。还有其他想法吗

以下是发送电子邮件的PHP代码:

<?php
$to = "myaccount@gmail.com";

// subject
$subject = "Test mail";

// message
$message = file_get_contents("index.html");

// from
$from = "myaccount@gmail.com";

// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= "From:" . $from;

// Mail it
mail($to,$subject,$message,$headers);

echo "Mail Sent.";
?>


我将非常感谢你的帮助。提前感谢。

只需将css代码嵌入html电子邮件的

最好在
index.html
正文中的某个位置放置一个
块,其中包含所有css。一些电子邮件客户端/门户使用
剪切嵌入在标题中的所有CSS。因此,不使用内联CSS可能会导致您的电子邮件在使用
@gmail.com
的帐户上出现“损坏”或看起来很糟糕。

谷歌、Outlook、雅虎所有主要的电子邮件服务提供商都不允许使用CSS外部文件。他们选择了内联样式和表格来呈现带有任何样式的适当电子邮件消息,这听起来可能有些过时

编写代码可能很枯燥,但像和envato这样的公司将帮助解决一些模板和格式问题


我的第二点:电子邮件提供商不能信任所有发送的信息源,因此这是一种防止恶意代码的方法

在index.html文件中,包括一个
标记,如下所示

<style>
.class{
style: attribute; 
}
</style>";

.类{
风格:属性;
}
";
这应该行得通,如果不行的话,我建议你把你的样式表放在一个网站上,并在你的索引文件的头部添加一个类似于下面的标签

<link rel='stylesheet' type='text/css' href='http://www.yourstylesheet.com'>";
”;

这两种方法中的任何一种都有助于解决您的问题。

是的,您需要使用内联CSS。大多数电子邮件服务,如谷歌(尤其是谷歌)都会丢弃外部CSS。当为电子邮件编写HTML时,想想1996年的互联网。我通常将我的样式嵌入电子邮件的
页面中,然后参考元素内联的类。从技术上讲,你可以在发送之前重新呈现电子邮件。只需加载抓取HTML文档,在其中创建标记,抓取CSS文件的内容并将其放在两者之间。这将产生相同的结果,但应该比重新编写所有电子邮件更快、更简单、更通用:SHere是一些可以帮助减轻您痛苦的邮件。建议使用内联CSS,因为并非所有邮件客户端都支持
中的CSS。如果我使用
引导
意味着如何添加CSS?或者,如果我以
内联格式添加所有css
?(jQuery和js库)