Pear Mail, как отправить plain / text + text / html в UTF-8

Я пытаюсь отправить электронное письмо как в тексте, так и в html, но я не могу правильно отправить правильные заголовки. В частности, я хотел бы установить заголовок Content-Type, но я не могу найти, как установить его отдельно для html и текстовых частей.

Это мой код:

$headers = array( 'From' => 'info@mydomain.com', 'Return-Path' => 'info@mydomain.com', 'Subject' => 'mysubject', 'text_encoding' => '7bit', 'text_charset' => 'UTF-8', 'html_charset' => 'UTF-8', 'head_charset' => 'UTF-8', 'Content-Type' => 'text/html; charset=UTF-8' ); $mime = new Mail_mime(); $html = '<html><body><b>my body</b></body></html>'; $text = 'my body'; $mime->setTXTBody($text); $mime->setHTMLBody($html); $body = $mime->get(); $headers = $mime->headers($headers); $mail_object =& Mail::factory('smtp', $GLOBALS['pear_mail_config']); $mail_object->send('test@mydomain.com', $headers, $body); 

Это письмо, которое я получаю:

 From: info@mydomain.com Subject: mysubject text_encoding: 7bit text_charset: UTF-8 html_charset: UTF-8 head_charset: UTF-8 Content-Type: multipart/alternative; boundary="=_7adf2d854b1ad792c802a9db31084520" Message-Id: <.....cut.....> Date: Mon, 8 Oct 2012 15:40:54 +0200 (CEST) To: undisclosed-recipients:; --=_7adf2d854b1ad792c802a9db31084520 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="ISO-8859-1" my body --=_7adf2d854b1ad792c802a9db31084520 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="ISO-8859-1" <html><body><b>my body</b></body></html> --=_7adf2d854b1ad792c802a9db31084520-- 

Кажется, что заголовок Content-Type, который я установил, полностью игнорируется. Я бы ожидал некоторых функций setHTMLHeaders и setTXTHeaders, но похоже, что ничего подобного нет. Я что-то упускаю? Как установить оба заголовка Content-Type в UTF-8?

Я обнаружил, что заголовки должны быть написаны по-разному. В частности, некоторые из них являются параметрами для объекта mime, а не заголовками электронной почты. Затем массив mime_params должен быть передан функции get ().

Это правильный способ установки заголовков:

 $headers = array( 'From' => 'info@mydomain.com', 'Return-Path' => 'info@mydomain.com', 'Subject' => 'mysubject', 'Content-Type' => 'text/html; charset=UTF-8' ); $mime_params = array( 'text_encoding' => '7bit', 'text_charset' => 'UTF-8', 'html_charset' => 'UTF-8', 'head_charset' => 'UTF-8' ); $mime = new Mail_mime(); $html = '<html><body><b>my body</b></body></html>'; $text = 'my body'; $mime->setTXTBody($text); $mime->setHTMLBody($html); $body = $mime->get($mime_params); $headers = $mime->headers($headers); $mail_object =& Mail::factory('smtp', $GLOBALS['pear_mail_config']); $mail_object->send('test@mydomain.com', $headers, $body);