- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
// Вот код скрипта для отправки емейла:
mb_internal_encoding ("utf-8");
$from = "Иван Иванов <<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f8918e9996b8918e9996d68c9788">[email protected]</a>>";
$to = $name."<$email>";
$subject = "Подтверждение подписки";
$message = "текст письма здесь";
$headers = "From: ".$from."\nReply-To: ".$from."\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: 8bit";
mail ($to, $subject, $message, $headers);
// И что характерно, само тело письма приходит в правильной кодировке. А вот поля отправителя,
// получателя и сабж письма - в краказябинах. Сами тексты этих полей 100% написаны в utf-8, код скрипта тоже в utf-8.
// Вот что что я вижу в почте:
// Subject: РРѕРґСРІРµСждение РїРѕРґРїРёСРєРё
// From: Рван Рванов <<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="345d42555a745d42555a1a405b44">[email protected]</a>>
// Reply-To: Рван Рванов <<a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="432a35222d032a35222d6d372c33">[email protected]</a>>
// ...
// Проблема решилась следующим образом:
$subject = "=?utf-8?B?" . base64_encode("Подтверждение подписки") . "?=";
// И так для каждого поля.
gost # 0
ropuJIJIa # 0 ⇈
Как думаете, для чего первая строка? Оказывается, если не приклеить строчку <?xml encoding="UTF-8"> к HTML-файлу, объект DOMDocument пидорасит кодировку и отказывается воспринимать символы за пределами Latin-1.
bormand # 0
ropuJIJIa # 0 ⇈
Функция «mail» клеить вложения не умеет.
Расширение «mailparse» умеет разбирать, но не клеить.
Клеить умеет... расширение «IMAP»:
https://www.php.net/manual/ru/function.imap-mail-compose.php
Логично, да?
gost # 0 ⇈
Ух, бля, какая консистентность-то.
MAKAKA # 0
Иными словами, функция их хвалёной стандартной библиотеки пыха -- mail -- ненужное говно.
А есть в вашем компоститоре нормальная функция?
ropuJIJIa # 0 ⇈
guest # 0 ⇈
причем тут имап?
jojaxon # 0 ⇈
bormand # 0 ⇈
jojaxon # 0 ⇈
bormand # 0 ⇈
ropuJIJIa # 0 ⇈
Ну это примерно как была «Почта России». Потом прикрутили «Почта-банк». Потом на почте стали макаронами торговать.
MAKAKA # 0 ⇈
Это как человеку из 1989-го года сказать "сфотографируй на телефон и пошли фотку телеграммом"
ropuJIJIa # 0 ⇈
https://pear.php.net/manual/en/package.mail.mail-mime.php
1024-- # 0
Напомню главные правила
1. Не надо читать советские газеты и любые форумы.
2. Не надо писать на любых форумах.
3. Не надо открывать ссылки на подозрительные сайты.
4. Любой сайт с "php" в домене - подозрителен.
5. Не надо писать вопросы и ответы на стэкпитухе, можно только гуглить готовые ответы на стэкпитухе.
jojaxon # 0 ⇈
COBA_Hukorga_HE_cnum # 0 ⇈
guest # 0 ⇈
1024-- # 0 ⇈
Но не форумы, где постят питушню и спрашивают, как сложить 2+2 в jQuery.