2009-12-05 2 views
0

Я пытаюсь отправить электронное письмо самому себе, у которого есть макет и изображения. Что я делаю неправильно?Проблемы с отправкой html электронной почты в php

<?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

+0

@PHPNooblet. В чем дело? Является ли электронная почта не отображаться правильно ... это вообще не отображается? Измените свой вопрос, чтобы объяснить. –

+0

Макет не отображается. Никаких фотографий, ничего. Он отлично работает, когда я просматриваю макет в html-файле. – PHPNooblet

ответ

3

Вы должны использовать phpmailer вместо почты PHP() - Функция. Это позволяет вам легко отправлять HTML-сообщения.

Кроме того, вы можете попробовать validate свой HTML-код для совместимости для отправки по электронной почте.

С наилучшими пожеланиями, Fabian

+0

Я попробую. Благодарю. – PHPNooblet

1

У вас ошибка в коде:

НЕПРАВИЛЬНО

$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