Проблема с отправкой электронной почты, неизвестные символы! - PullRequest
1 голос
/ 07 июня 2009

У меня проблема с отправкой электронной почты на персидском языке. На gmail все нормально, весь текст показывает нормально. Но в таких заказах, как Yahoo, cpanel, веб-почта и т. Д., Я получаю неизвестных персонажей. Что я должен сделать, чтобы это исправить?

Вот мой код:

<?php
function emailHtml($from, $subject, $message, $to) {
    require_once "Mail.php";

    $headers = array ('MIME-Version' => "1.0", 'Content-type' => "text/html; charset=utf-8;", 'From' => $from, 'To' => $to, 'Subject' => $subject);

    $m = Mail::factory('mail');

    $mail = $m->send($to, $headers, $message);
    if (PEAR::isError($mail)){
        return 0;
    }else{
        return 1;
    }
}
?>  

Я использую PEAR почту для отправки электронной почты.

1 Ответ

2 голосов
/ 07 июня 2009

Вам нужно создать экземпляр Mail_Mime, установить заголовки и основной текст HTML, извлечь их из вашего экземпляра mime и передать их в ваш экземпляр Mail. Процитируем пример из документации:

<?php
include('Mail.php');
include('Mail/mime.php');

$text = 'Text version of email';
$html = '<html><body>HTML version of email</body></html>';
$file = '/home/richard/example.php';
$crlf = "\n";
$hdrs = array(
              'From'    => 'you@yourdomain.com',
              'Subject' => 'Test mime message',
              'Content-Type' => 'text/html; charset="UTF-8"' 
              );

$mime = new Mail_mime($crlf);

$mime->setTXTBody($text);
$mime->setHTMLBody($html);
$mime->addAttachment($file, 'text/plain');

//do not ever try to call these lines in reverse order
$body = $mime->get();
$hdrs = $mime->headers($hdrs);

$mail =& Mail::factory('mail');
$mail->send('postmaster@localhost', $hdrs, $body);
?>

Я отредактировал приведенный выше пример документации, включив заголовок Content-Type. Желательно, чтобы ваше тело сообщения было доступно как в виде обычного текста, так и HTML, если HTML не поддерживается клиентом. Кроме того, вам не понадобятся части, связанные с добавлением вложений, но я оставил их ради знаний.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...