2009-09-30 2 views
2

Я хочу, чтобы иметь возможность отправлять электронные письма с помощью PHP mail(), содержащего 8-битные символы åäö. Они будут использоваться в теме, сообщении и в заголовке «From:». Как я могу это сделать без использования пакетов PEAR?PHP Отправить почту UTF-8 без PEAR :: Mail PEAR :: Mail_Mime

ответ

4

Простейшее решение, если вы не возражаете, кодирующие даже слова, которые не нужны это поместить все в base64 RFC 2047 закодированного слова:

$subject= "=?utf-8?b?".base64_encode($subject)."?="; 
$body= "blah blah $utf8text blah"; 
$headers= "MIME-Version: 1.0\r\n"; 
$headers.= "From: =?utf-8?b?".base64_encode($fromname)."?= <$fromaddress>\r\n"; 
$headers.= "Content-Type: text/plain;charset=utf-8"; 

mail($toaddress, $subject, $body, $headers); 
+0

Спасибо, но этот ответ был весьма неполным. Мне нужно использовать åäö в сообщении, заголовок «From:» и тему. Как я могу это сделать? Спасибо за ваше время. – Johan

+0

Добавлен больше контекста. Заголовок From - это тот же самый метод кодирования, что и заголовок Subject. Кодирование почтового тела контролируется Content-Type. Я читаю, что у вас уже есть ваши символы åäö, закодированные как байтовая строка UTF-8 '\ xc3 \ xa5 \ xc3 \ xa4 \ xc3 \ xb6'. – bobince

-2
$headers = array('From' => $from, 
    'To' => "<$to>", 
    'Subject' => $subject); 

if ($is_html) { 
    $headers['Content-type'] = "text/html; charset=UTF-8"; 
} else { 
    $headers['Content-type'] = "text/plain; charset=UTF-8"; 
} 

Это работает для меня

Смежные вопросы