通过PHP发送HTML电子邮件,包括CSS样式表


Send HTML email including CSS style sheet via PHP

我想将包含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.";
?>

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

Google,Outlook,Yahoo所有主要的电子邮件服务提供商都不允许CSS外部文件。他们选择内联样式和表格来呈现具有任何样式的正确电子邮件,这听起来可能已经过时了。

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

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

最好在index.html体的某个地方放一个包含所有 CSS 的<style>块。一些电子邮件客户端/门户使用<link rel="stylesheet" type="text/css" href="..." >剪切标题中嵌入的所有 CSS 。因此,不使用内联CSS可能会导致您的电子邮件看起来"损坏",或者只是在带有@gmail.com的帐户上看起来很糟糕。

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

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

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

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

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

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