Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Нужна помощь: битая кодировка в письме

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
RobinBad
Отправлено: 14 Февраля, 2017 - 13:50:06
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




Вот код скрипта для отправки емейла:
CODE (htmlphp):
скопировать код в буфер обмена
  1. mb_internal_encoding ("utf-8");
  2.         $from = "Иван Иванов <ivan@ivan.top>";
  3.         $to = $name."<$email>";
  4.         $subject = "Подтверждение подписки";
  5.         $message = "текст письма здесь";
  6.         $headers = "From: ".$from."\nReply-To: ".$from."\nContent-Type: text/plain; charset=utf-8\nContent-Transfer-Encoding: 8bit";
  7.        
  8.         mail ($to, $subject, $message, $headers);

И что характерно, само тело письма приходит в правильной кодировке. А вот поля отправителя, получателя и сабж письма - в краказябинах. Сами тексты этих полей 100% написаны в utf-8, код скрипта тоже в utf-8. Помогите плз!
 
 Top
teleoperator27
Отправлено: 14 Февраля, 2017 - 14:20:19
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




PHP:
скопировать код в буфер обмена
  1. $to      = $email;
  2. $subject = "Подтверждение подписки";
  3. $message = "текст письма здесь";
  4. $headers = "From: Иван Иванов <ivan@ivan.top>\r\n";
  5. $headers .= "Reply-To: " . $from . "\r\n";
  6. mail($to, $subject, $message, $headers);

В приниципе, больше ничего и не надо
 
My status
 Top
RobinBad
Отправлено: 14 Февраля, 2017 - 15:06:02
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




teleoperator27 попробовал Ваш вариант, проблему кодировки он не решает...
 
 Top
teleoperator27
Отправлено: 14 Февраля, 2017 - 15:10:23
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




а в какой кодировке приходят эти поля?
 
My status
 Top
RobinBad
Отправлено: 14 Февраля, 2017 - 15:24:21
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




teleoperator27 пишет:
а в какой кодировке приходят эти поля?

Не знаю, вот все что я вижу в почте:

Subject: РРѕРґСРІРµСждение РїРѕРґРїРёСРєРё
From: Рван Рванов <ivan@ivan.top>
Reply-To: Рван Рванов <ivan@ivan.top>
 
 Top
teleoperator27
Отправлено: 14 Февраля, 2017 - 15:30:55
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




поправочка
PHP:
скопировать код в буфер обмена
  1.  
  2. $to      = $email;
  3.  
  4. $subject = "Подтверждение подписки";
  5.  
  6. $message = "текст письма здесь";
  7.  
  8. $headers = "From: Иван Иванов <ivan@ivan.top>\r\n";
  9.  
  10. $headers .= "Reply-To: " . $from . "\r\n";
  11.  
  12. $headers .= "Content-type: text/html; charset=utf-8\r\n";
  13.  
  14. $headers .= "Content-Transfer-Encoding: 8bit\r\n";
  15.  
  16. mail($to, $subject, $message, $headers);
  17.  

(Отредактировано автором: 14 Февраля, 2017 - 15:35:19)

 
My status
 Top
RobinBad
Отправлено: 14 Февраля, 2017 - 15:47:19
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




teleoperator27 пишет:
поправочка

Проблему не решило, смотрите скрин в аттаче
Прикреплено изображение
TheBat.jpg
 
 Top
teleoperator27
Отправлено: 14 Февраля, 2017 - 15:55:21
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




все файлы точно utf-8 без BOM? А что в служебных заголовках в письмах?
(Добавление)
в качестве бреда


PHP:
скопировать код в буфер обмена
  1.  
  2.         $to      = $email;
  3.         $subject = "=?utf-8?B?" . base64_encode("Подтверждение подписки") . "?=";
  4.         $message = "текст письма здесь";
  5.         $headers = "From: Иван Иванов <ivan@ivan.top>\r\n";
  6.         $headers .= "Reply-To: " . $from . "\r\n";
  7.         $headers .= "Content-type: text/html; charset=utf-8\r\n";
  8.         $headers .= "Content-Transfer-Encoding: 8bit\r\n";
  9.         mail($to, $subject, $message, $headers);
  10.  

Что в теме письма пришло?
 
My status
 Top
RobinBad
Отправлено: 14 Февраля, 2017 - 16:08:53
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




teleoperator27 пишет:
все файлы точно utf-8 без BOM?

100%, проверил.
teleoperator27 пишет:
А что в служебных заголовках в письмах?

Delivered-To: [...]@gmail.com
Received: by 10.103.128.140 with SMTP id b134csp1361730vsd;
Tue, 14 Feb 2017 05:04:47 -0800 (PST)
X-Received: by 10.37.115.209 with SMTP id o200mr21757842ybc.124.1487077487632;
Tue, 14 Feb 2017 05:04:47 -0800 (PST)
Return-Path: <apache@[...]>
Received: from [...] ([...])
by mx.google.com with ESMTPS id i186si157355ywb.122.2017.02.14.0 5.04.46
for [...]
(version=TLS1 cipher=AES128-SHA bits=128/128);
Tue, 14 Feb 2017 05:04:47 -0800 (PST)
Received-SPF: neutral (google.com: [...] is neither permitted nor denied by best guess record for domain of [...]) client-ip=[...];
Authentication-Results: mx.google.com;
spf=neutral (google.com: [...] is neither permitted nor denied by best guess record for domain of [...]) smtp.mailfrom=apache@[...]
Received: from [...] (localhost.localdomain [127.0.0.1])
by [...] (8.13.8/8.13.8) with ESMTP id v1EDEQgP025052
for [...]; Tue, 14 Feb 2017 08:14:26 -0500
Received: (from apache@localhost)
by [...] (8.13.8/8.13.8/Submit) id v1EDEQZd025049;
Tue, 14 Feb 2017 08:14:26 -0500
Date: Tue, 14 Feb 2017 08:14:26 -0500
Message-Id: <201702141314.v1EDEQZd025049@[...]>
To: [...]
Subject: РРѕРґСРІРµСждение РїРѕРґРїРёСРєРё
From: Рван Рванов <ivan@ivan.top>
Reply-To: Рван Рванов <ivan@ivan.top>
(Добавление)
teleoperator27 пишет:

(Добавление)
в качестве бреда

А вот как ни странно, сабж пришел читаемым!
teleoperator27 пишет:

Что в теме письма пришло?

Тело письма во всех случаях читаемо
 
 Top
teleoperator27
Отправлено: 14 Февраля, 2017 - 16:15:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




не в теЛе а в теМе Улыбка ну раз кодирование помогает, то значит дальше по образцу с сабжем
(Добавление)
Только надо будет потестить на разных сервисах: гугл, мэйлру, яндекс и тд
 
My status
 Top
RobinBad
Отправлено: 14 Февраля, 2017 - 16:17:56
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




teleoperator27Большое спасибо, хоть и "штаны через голову", но проблема решилась!
 
 Top
teleoperator27
Отправлено: 14 Февраля, 2017 - 16:21:53
Post Id



Посетитель


Покинул форум
Сообщений всего: 265
Дата рег-ции: Янв. 2017  


Помог: 21 раз(а)




че то с файлами не то. Ну и очистку данных надо добавить , как минимум trim(). НУ я еще иногда htmlspecialchars() добавляю. И валидации нет в форме никакой, ошибки же возвращать тоже надо
 
My status
 Top
RobinBad
Отправлено: 14 Февраля, 2017 - 16:43:15
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Нояб. 2014  


Помог: 0 раз(а)




teleoperator27 пишет:
че то с файлами не то. Ну и очистку данных надо добавить , как минимум trim(). НУ я еще иногда htmlspecialchars() добавляю. И валидации нет в форме никакой, ошибки же возвращать тоже надо

Все это есть в реальном скрипте, но за советы спасибо.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Кодировки и все смежное »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB