|
|
|
|
|
для: AVS
(03.06.2008 в 00:00)
| | Будет, конечно. base64 проглатывает любые байты. | |
|
|
|
|
|
|
|
для: sim5
(02.06.2008 в 19:54)
| | А если у меня случайно будет тема или имя отправителя на английском языке и я переведу ее в base64, то все равно будет работать нормально? | |
|
|
|
|
|
|
|
для: AVS
(02.06.2008 в 19:48)
| |
=?кодировка?способ кодирования?закодированный текст?=
|
Кодировка может быть любой из списка "windows-1251", "koi8-r", "utf-8" и т.д. Во всех случаях, как правило, кодировка сообщения будет совпадать с кодировкой в которой работает сайт. То есть в большинстве случаев это будет "windows-1251", реже - "utf-8".
Способ кодирования указывает на то, каким именно образом русские символы будут преобразованы в безопасный набор. Способа определяется два: так называемый "Q-encoding" (обозначается одной буквой "Q") и "Base64" (обозначается одной буквой "B").
К сожалению, штатной функции, которая бы могла бы обычную строку преобразовать в Q-encoded текст, в PHP нет, зато есть функция, которая умеет выполнять аналогичное преобразование в Base64. Итак, PHP код правильного создания заголовка темы почтового сообщения может выглядеть следующим образом:
$subject = "=?windows-1251?B?" . base64_encode($_POST["subject"]) . "?=";
|
Здесь предполагается, что в переменной $_POST["subject"] у вас содержится тема почтового сообщения, записанная по-русски в кодировке windows-1251.
Адрес отправителя или получателя может быть записан в виде "user@example.com" или в виде "Имя пользователя <user@example.com>". Во втором случае имя пользователя необходимо преобразовать так же, как в предыдущем примере. Ниже приведен пример, в котором предполагается, что в переменной $_POST["username"] содержится имя пользователя, а в переменной $_POST["email"] его электронный адрес:
$sender = "=?windows-1251?B?" . base64_encode($_POST["username"]) . "?= <" . $_POST["email"] . ">";
|
| |
|
|
|
|
|
|
| Здравстввуйте!
Подскажите, как кодировать кириллицу в заголовках письма? Какую функцию для этого применить? | |
|
|
|
|