当我发送邮件时没有获得CSS,只获得没有风格的html内容我的PHP代码如下,我使用phpmailer .so,如何获取CSS格式与我的HTML内容?我通过添加$ mail-> IsHTML(true)来尝试代码;但没有任何事情发生............................................
require_once('../class.phpmailer.php');
$mail= new PHPMailer(); // defaults to using php "mail()"
$mail->IsSendmail(); // telling the class to use SendMail transport
$body= file_get_contents('contents.html');
$body= eregi_replace("[\]",'',$body);
$mail->AddReplyTo("name@yourdomain.com","First Last");
$mail->SetFrom('name@yourdomain.com', 'First Last');
$mail->AddReplyTo("name@yourdomain.com","First Last");
$address = "whoto@otherdomain.com";
$mail->AddAddress($address, "John Doe");
$mail->Subject= "PHPMailer Test Subject via Sendmail, basic";
$mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test
$mail->MsgHTML($body);
$mail->AddAttachment("images/phpmailer.gif"); // attachment
$mail->AddAttachment("images/phpmailer_mini.gif"); // attachment
if(!$mail->Send()) {
echo "Mailer Error: " . $mail->ErrorInfo;
} else {
echo "Message sent!";
}
Html代码:
<head>
<style>
#outlook a {
padding:0;
}
body{
width:100% !important;
min-width: 100%;
-webkit-text-size-adjust:100%;
-ms-text-size-adjust:100%;
margin:0;
padding:0;
}
.ExternalClass {
width:100%;
}
.....etc...................
.......................
</style>
</head>
<body>
<table class="body">
<tr>
<td class="center" align="center" valign="top">
<center>
<table class="row header">
<tr>
<td class="center" align="center">
<center>
<table class="container">
<tr>
<td class="wrapper last">
<table class="twelve columns">
<tr>
<td class="six sub-columns">
<img src="http://placehold.it/200x50">
</td>
<td class="six sub-columns last" style="text-align:right; vertical-align:middle;">
<span class="template-label">BASIC</span>
</td>
<td class="expander"></td>
</tr>
</table>
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
<table class="container">
<tr>
<td>
<table class="row">
<tr>
<td class="wrapper last">
<table class="twelve columns">
<tr>
<td>
<h1>Hi, Susan Calvin</h1>
<p class="lead">Phasellus dictum sapien a neque luctus cursus. Pellentesque sem dolor, fringilla et pharetra vitae.</p>
<p>Phasellus dictum sapien a neque luctus cursus. Pellentesque sem dolor, fringilla et pharetra vitae. consequat vel lacus. Sed iaculis pulvinar ligula, ornare fringilla ante viverra et. In hac habitasse platea dictumst. Donec vel orci mi, eu congue justo. Integer eget odio est, eget malesuada lorem. Aenean sed tellus dui, vitae viverra risus. Nullam massa sapien, pulvinar eleifend fringilla id, convallis eget nisi. Mauris a sagittis dui. Pellentesque non lacinia mi. Fusce sit amet libero sit amet erat venenatis sollicitudin vitae vel eros. Cras nunc sapien, interdum sit amet porttitor ut, congue quis urna.</p>
</td>
<td class="expander"></td>
</tr>
</table>
</td>
</tr>
</table>
<table class="row callout">
<tr>
<td class="wrapper last">
<table class="twelve columns">
<tr>
<td class="panel">
<p>Phasellus dictum sapien a neque luctus cursus. Pellentesque sem dolor, fringilla et pharetra vitae. <a href="#">Click it! »</a></p>
</td>
<td class="expander"></td>
</tr>
</table>
</td>
</tr>
</table>
<table class="row footer">
<tr>
<td class="wrapper">
<table class="six columns">
<tr>
<td class="left-text-pad">
<h5>Connect With Us:</h5>
<table class="tiny-button facebook">
<tr>
<td>
<a href="#">Facebook</a>
</td>
</tr>
</table>
<br>
<table class="tiny-button twitter">
<tr>
<td>
<a href="#">Twitter</a>
</td>
</tr>
</table>
<br>
<table class="tiny-button google-plus">
<tr>
<td>
<a href="#">Google +</a>
</td>
</tr>
</table>
</td>
<td class="expander"></td>
</tr>
</table>
</td>
<td class="wrapper last">
<table class="six columns">
<tr>
<td class="last right-text-pad">
<h5>Contact Info:</h5>
<p>Phone: 408.341.0600</p>
<p>Email: <a href="mailto:hseldon@trantor.com">hseldon@trantor.com</a></p>
</td>
<td class="expander"></td>
</tr>
</table>
</td>
</tr>
</table>
<table class="row">
<tr>
<td class="wrapper last">
<table class="twelve columns">
<tr>
<td align="center">
<center>
<p style="text-align:center;"><a href="#">Terms</a> | <a href="#">Privacy</a> | <a href="#">Unsubscribe</a></p>
</center>
</td>
<td class="expander"></td>
</tr>
</table>
</td>
</tr>
</table>
<!-- container end below -->
</td>
</tr>
</table>
</center>
</td>
</tr>
</table>
答案 0 :(得分:2)
我认为您使用的是PHPMailer的旧版本,或者至少是旧的示例代码。
不要使用ereg *函数 - 它们已被弃用多年。
PHPMailer不接触您的HTML,只对其进行正确编码,因此您看到的任何内容都会在到达收件箱之前由服务器端过滤,或者像@SLaks所说的客户端限制。
我看到你正在使用Zurb的Ink框架(不错的选择),但是你需要通过inliner来运行它以使CSS可靠地工作,特别是在gmail中。
为了测试您的内容是否干净利落,请使用类似Apple Mail的内容进行测试,该内容具有任何客户端的最佳呈现效果,并且根本不会弄乱您的内容。 Gmail不会删除样式,但它会删除类和ID,使CSS无用,除非您内联所有内容或仅使用基于标记的选择器。
答案 1 :(得分:0)
它与PHPMailer无关。如果您发送电子邮件为HTML PHPMailer简单发送您的数据,而不是更改您的代码。
您应该将<style>
更改为<style type="text/css">
,以确保所有电子邮件客户都无法理解您的风格。
第二件事是你应该用其他一些CSS属性测试你的代码,例如background-color
或color
。
然而,CSS代码的某些部分简单无法工作。电子邮件客户端不是浏览器,因此为了与电子邮件客户端最大程度地兼容,您需要经常使用以下代码:
<table cellpadding=0" cellspacing="0" width="700" align="center" border="0" bgcolor="#ffffff">
而不是使用漂亮的CSS
答案 2 :(得分:0)
我发现一些电子邮件客户端(例如Gmail和Hotmail)只会遗憾地响应内联css。但实际上,如果你知道CSS,你可以为每个html元素使用内联样式。这真的是我能给出的最佳建议。