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

时间:2013-12-17 15:03:49

标签: 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 = "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.";
?>

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

4 个答案:

答案 0 :(得分:2)

最好将<style>块放在index.html正文中的所有CSS中。某些电子邮件客户端/门户网站使用<link rel="stylesheet" type="text/css" href="..." >剪切了标头中嵌入的所有CSS。因此,不使用内联CSS可能会导致您的电子邮件出现“损坏”状态。或者只是在@gmail.com的帐户上看起来很糟糕。

答案 1 :(得分:1)

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

代码可能会很繁琐,但像https://litmus.com/和envato这样的公司会帮助解决一些模板和格式问题。

我的2¢:电子邮件提供商不能信任所有发送的信息来源,因此这是一种防止恶意代码的方式。

答案 2 :(得分:1)

在index.html文件中,添加<style>标记,如下所示。

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

这应该可行,如果没有,那么我可能会建议在网站上托管您的样式表,并在索引文件的头部包含一个类似下面的<link>标签

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

这两种方法都可以解决您的问题。

答案 3 :(得分:0)

只需将css代码嵌入到该html-email的<head>中。