2017-02-15 9 views
0

Я использую следующий код для отправки по электронной почте:PHP mail(); Как установить кодировку для субъекта и электронной почты

<?php 
$to = $_POST['email']; 
$subject = "Subject!"; 
$message = "Hello!"; 
$headers = "From: Me<[email protected]>\r\n"; 
$headers .= "Return-Path: [email protected]\r\n"; 
$headers .= "BCC: [email protected]\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/plain; charset=utf-8\r\n"; 
mail($to,$subject,$message,$headers); 
?> 

Хотя использование charset=utf-8 символы в теме и адрес электронной почты линии еще не декодированы правильно. Я получаю таких символов: ößä.

Как я могу установить кодировку для темы и адресной строки?

+0

ли вы проверить ответ при условии? Пожалуйста, примите это, если это правильно. Благодаря! – Dekel

ответ

3

Для кодирования темы сообщения электронной почты, вы должны использовать:

$subject = '=?utf-8?B?'.base64_encode($subject).'?='; 

, а затем внутри функций mail:

mail($to,$subject,...); 
+0

Могу ли я сделать: 'mail ($ to, '=? Utf-8? B ?. base64_encode ($ subject).'? = ', $ Message, $ headers);'? – David

+1

Да, это точно то же самое – Dekel

+0

Я пробовал то же самое с '$ to', но, похоже, не работает. E-Mail возвращается как недопустимый. Что я могу сделать? – David

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