2014-02-16 4 views
0

У меня есть проблемы с моей почтовой программой php, я получаю только исходный код, который не является interprated.PHP MIME header

Кто-то может проверить мои заголовки?

$recipient = str_replace(Array("\r","\n"),"",$this->to); 
$headers = 'From: "xxx.ch" <[email protected]> '."\r\n"; 
$headers .= 'Return-Path: <[email protected]>' . "\r\n"; 
if (isset($this->replyTo)){ 
    $headers .= 'Reply-To: [email protected]' . "\r\n"; 
} 
$random_hash = md5(date('r', time())); 
$headers .= "MIME-Version: 1.0 \r\n Content-Type: multipart/alternative; boundary=\"".$random_hash."\""; 
$body = '--'.$random_hash."\r".' 
     Content-Type: text/plain; charset="UTF-8"'."\r".' 
     Content-Transfer-Encoding: 8bit'."\r".' 

     Merci d\'utiliser un client mail supportant le format HTML'."\r".' 

     --'.$random_hash."\r".' 

     Content-Type: text/html; charset="UTF-8"'."\r".' 
     Content-Transfer-Encoding: 8bit'."\r"; 
$body .= $this->HTMLBody ."\r".'--'.$random_hash.'--'; 

Благодаря

+0

Установлен ли ваш сервер для отправки электронной почты? Какая служба SMTP запущена? Правильно ли настроен PHP для отправки электронной почты? –

+0

Да, конфигурация сервера в порядке, но для какого-то старого почтового клиента не поддерживаются html, поэтому я должен добавить поддержку для них, а теперь с MIME у меня много ошибок :-( –

+0

Вы посмотрели на использование почтового пакета PEAR MIME вместо сделать это вручную? – miken32

ответ

1

Хотя я согласен с другими комментаторами, что вы должны смотреть в библиотеку третьей стороны, а не делать это вручную, текущая проблема, вероятно, связаны с линейными окончаниями и пробельным, которые MIME очень разборчивы.

У вас много кода, как это:

$body = '--'.$random_hash."\r".' 
     Content-Type: text/plain; charset="UTF-8"'."\r".' 
     Content-Transfer-Encoding: 8bit'."\r"; // (and so on) 

Вы тщательно вставив возврат каретки ("\r"), но затем встраивание новой строки и много пробелов в следующий одинарных кавычках, а также.

Вместо этого, вы должны только включать возврат каретки, и убедитесь, что все другие пробелы вне одинарные кавычки (вы хотите, чтобы PHP, чтобы быть читаемыми, но для этого не повлияет на выход):

$body = '--' . $random_hash . "\r" 
     . 'Content-Type: text/plain; charset="UTF-8"'."\r" 
     . 'Content-Transfer-Encoding: 8bit'."\r"; // (and so on) 
+0

Работайте отлично спасибо –