2009-12-05 67 views
0

我试图发送一封电子邮件给我自己,它有一个布局和图像。我做错了什么?在php中发送html电子邮件的问题

<?php 
$message = $_POST['message']; 
$emailsubject = 'site.com'; 
$webMaster = '[email protected]'; 

$body = " 
<html> 
<body bgcolor=\"e7e7e7\"> 
<style type=\"text/css\"> 
#body {margin: auto;border: 0;padding: 0;font-family: Georgia, 'Times New Roman',  Times, serif;font-size: 12px;} 
#emailHeader {width: 500px;height: 131px;background:  url(http://www.site.com/images/image.gif) no-repeat;} 
#emailContent {width: 500px;background: url(http://www.site.com/images/image2.gif) repeat-y;text-align: left;padding: 0 33px 0 6px;} 
#emailFooter {width: 500px;height: 34px;background:  url(http://www.site.com/images/image3.gif) no-repeat;} 
</style> 
<table width=\"100%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> 
<tr> 
<td valign=\"top\" align=\"center\"> 
<table width=\"500\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\"> 
<tr> 
<td id=\"emailHeader\"></td> 
</tr> 
<tr> 
<td id=\"emailContent\"> 
content $message 
</td> 
</tr> 
<tr> 
<td id=\"emailFooter\"></td> 
</tr> 
</table> 
</td> 
</tr> 
</table> 
</body> 
</html>" 
$headers .= "Content-type: text/html\r\n"; 
$success = mail($webMaster, $emailsubject, $body, $headers); 

if ($success) { 
    echo "Your message was sent."; 
} 
else{ 
    echo "There was a error."; 
} 
?> 
+2

发生什么事情并非您所期望的?你是否收到错误信息?如果是这样,什么? – Amber 2009-12-05 00:47:35

+0

@PHPNooblet。你有什么问题?电子邮件是否显示不正确?是否根本没有显示?请编辑你的问题来解释。 – 2009-12-05 00:48:02

+0

布局不显示。没有图片,任何东西。当我在HTML文件中查看布局时,它工作正常。 – PHPNooblet 2009-12-05 00:50:16

回答

3

您应该使用phpmailer而不是PHP的mail()函数。它可以让你轻松发送HTML邮件。

除此之外,你可以尝试validate你的HTML代码兼容电子邮件。

最良好的祝愿, 费边

+0

我会尝试。谢谢。 – PHPNooblet 2009-12-05 00:55:51

1

你在你的代码中的错误:

WRONG

$headers .= "Content-type: text/html\r\n"; 

RIGHT

$headers = "Content-type: text/html\r\n"; 

.=在PHP中抛出一个解析错误,除非您先前在其他位置设置了$headers

它也可能取决于您正在测试的电子邮件客户端。请务必查看http://www.email-standards.org/以检查您的电子邮件客户端支持的内容。

+0

PHP足够宽容。你不一定需要预定义它。 – BalusC 2009-12-05 01:06:21