2013-12-17 81 views
14

我想将包含CSS样式表的HTML页面发送到电子邮件帐户。问题在于CSS样式表完全不可见。我是否必须内联每个CSS样式?这似乎是非常低效的方法。任何其他想法?通过PHP发送包含CSS样式表的HTML电子邮件通过PHP

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

<?php 
$to = "[email protected]"; 

// subject 
$subject = "Test mail"; 

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

// from 
$from = "[email protected]"; 

// 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."; 
?> 

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

+12

是的,你需要使用内联CSS。大多数电子邮件服务(如Google)(特别是)会垃圾外部CSS。 –

+9

编写电子邮件的HTML时,请考虑1996年的互联网。 – MackieeE

+0

我通常将电子邮件的''中的样式嵌入到表单中,然后参考内联元素的类。 – Crackertastic

回答

0

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

+3

建议使用内联CSS,因为并非所有邮件客户端都支持''中的CSS。 – rybo111

+0

如果我使用'bootstrap'意味着如何添加css?或者如果我添加所有在'内联格式的CSS??? – Karthi

+0

是的,直接添加它。 – Roman

2

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

1

Google,Outlook,Yahoo所有主要的电子邮件服务提供商都不允许使用CSS外部文件。他们选择内联样式和表格来呈现任何样式的正确电子邮件信号可能听起来很古老。

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

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

1

在您的index.html文件中,包含<style>标签,如下所示。

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

这应该工作,如果没有,那么我会建议托管您网站上的样式表,并包括类似于索引文件的头部下方的一个<link>标签

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

无论是那些方法应该有助于解决您的问题。

+0

这个工作与js代码一样吗? (jQuery和一个js库) –