Поле От/From в отправляемых форумом письмах - Дизайн и модификация Invision Power Board

Перейти к содержимому

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

email

Страница 1 из 1

Поле От/From в отправляемых форумом письмах Название сайта в UTF-8 не кодируется, а просто вырезается.

#1 Пользователь не на сайте   Bonov ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 15-Декабрь 10
  • Репутация: 13
  • Откуда:Москва/Коломна
  • IPB version:3.4.x
 

Отправлено 26 Август 2011 - 11:32

Добрый день!

Столкнулся с проблемой при переходе на английскую версию форума. Теперь в письмах, отправляемых с сайта, в поле От/From не подставляется название сайта, а указывается только e-mail, указанный в настройках.

IPS ответили, что типа очень много серверов не понимают такие заголовки, поэтому они просто вырезают в этом случае название сайта :( Но, хотелось бы все-таки, чтобы название сайта присутствовало, благо все нормальные сервера понимают и UTF-8... Более того, в версии от IBR название указывается и нормально кодируется в UTF-8.

Кто может подсказать, где и что нужно подправить?

Ответ от IPS:

Цитата

It's because the board name is in UTF-8.. We used to allow it, but, have found more and more that email servers have problems with the encoding of the characters, and will wind up not sending the mail at all. So, we don't encode it, and, if it's a UTF-8 character, that generally means it won't go through.

Right now, there is no way around it. Other than using only standard latin characters in the board name.

0

#2 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 00:17

О какой версии речь?

В 3.2.0 и 3.1.4 никакой чистки от не-unicode не нашел (только что просмотрел).
0

#3 Пользователь не на сайте   Bonov ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 15-Декабрь 10
  • Репутация: 13
  • Откуда:Москва/Коломна
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 00:19

3.2.1. Да даже с этого форума письма приходят просто с адреса ***@ipbskins.ru без указания названия сайта...
0

#4 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 00:30

Пойду скачаю и посмотрю, что там в 3.2.1 сделали.

В любом случае, думаю, можно без тени сомнения взять файл /admin/sources/handlers/han_email.php из 3.2.0 и заменить им новый из 3.2.1. Скорее всего все заработает без каких-либо проблем. Точнее скажу, когда посмотрю код из 3.2.1.
0

#5 Пользователь не на сайте   Bonov ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 15-Декабрь 10
  • Репутация: 13
  • Откуда:Москва/Коломна
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 00:33

Стоп, а что, в 3.2.0 письма приходят с нормальным имени сайта в отправителе? Я-то думал это ИБР что-то подкрутили, раз и здесь тоже есть такие же проблемы...

Просто версия от ИБР у меня только 3.1.4.

Спасибо за подсказку про файл, хоть буду знать, что смотреть, может и сам что найду.

Пример строчки из заголовка письма от 3.1.4 ИБР

From: "=?UTF-8?B?0JrQu9GD0LEg0KHRgtGD0LTQtdC90YLQvtCyINC4INCc0L7Qu9C+0LTQtdC20LggItCd0LDRiCDQo9C90LjQstC10YAi?=" <forum@nashuniver.ru>

Пример строчки из заголовка письма от 3.2.1 IPS

From: <forum@nashuniver.ru>

Сообщение изменено: Bonov (27 Август 2011 - 00:35)

0

#6 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 00:37

Упс, был не прав. Все сложнее, можно ничего не менять - все равно не поможет :)
0

#7 Пользователь не на сайте   Bonov ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 15-Декабрь 10
  • Репутация: 13
  • Откуда:Москва/Коломна
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 00:38

Просмотреть сообщениеRitsuka 27 Август 2011 - 00:37 сказал(а):

Упс, был не прав. Все сложнее, можно ничего не менять - все равно не поможет :)

Хоть и с улыбкой, но не оптимистичный ответ :)
Различия-то хоть в этом файле искать? Или где-то еще глубже?
0

#8 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 01:03

В файле /ips_kernel/classEmail.php:

Обратите внимание

Код в данном посте немного поврежден парсером IPB (ну не любит он всякие заковыристые сочетания ковычек), поэтому двумя постами ниже в аттаче лежат ПРАВИЛЬНЫЕ куски кода. Забирайте их оттуда :)



Строки:
		$this->from			= $this->_cleanEmail( $email );
		$this->from_display	= $display;


Заменяете на:
		$this->from			= $this->_cleanEmail( $email );
		$from = str_replace( '"', '"', $display );
		$from = str_replace( ''', "'", $from );
		$from = str_replace( ''' , "'", $from );
		$from = str_replace( '!' , "!", $from );
		$from = str_replace( '$' , "$", $from );
		if( $this->mail_method != 'smtp'  AND $from !== '' )
		{
			$fheader	= $this->_encodeHeaders( array( 'FDispay' => $from ) );
			$from		= $fheader['FDispay'];
			unset($this->mail_headers['FDispay']);
		}
		$this->from_display		= $from;


Кириллица энкодится, поэтому фильтр на нее далее не срабатывает.

И еще:

			//-----------------------------------------
			// We don't want to keep subject in the
			// headers for php mail
			//-----------------------------------------		

			if( $this->mail_method != 'smtp' AND $header == 'Subject' )
			{
				unset($this->mail_headers[ $header ]);
			}
			


заменить на:
			if( $header == 'Subject' OR $header == 'FDispay' )
			{
				$val= '=?' .$this->char_set .'?B?' .base64_encode($orig_value) .'?=';

				if( !count($headers) )
				{
					$this->mail_headers[ $header ] = $val;
				}
				else
				{
					$enc_headers[ $header ] = $val;
				}

				continue;
			}


Можно потестировать здесь на ipbskins - работает, отправитель появился.
3

#9 Пользователь не на сайте   Bonov ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 15-Декабрь 10
  • Репутация: 13
  • Откуда:Москва/Коломна
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 13:23

Ritsuka, спасибо огромное!

С первым участком кода все понятно, а зачем второй?
0

#10 Пользователь не на сайте   Ritsuka ответил: »

 
 
  • ***
  • Смотреть галерею
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1 908
  • Регистрация: 08-Июнь 09
  • Репутация: 531
  • IPB version:3.4.x
 

Отправлено 27 Август 2011 - 15:42

Второй собственно энкодит From и Subject в base64, во избежание проблем с кириллицей.
0

#11 Пользователь не на сайте   Bonov ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 171
  • Регистрация: 15-Декабрь 10
  • Репутация: 13
  • Откуда:Москва/Коломна
  • IPB version:3.4.x
 

Отправлено 08 Сентябрь 2011 - 20:12

Строки кода выше отображаются не правильно, поэтому для интересующихся прилагаю туже самую инструкцию, но в отдельном текстовом файле.

Вложение  Поле ОТ в отправляемых письмах.txt (1,47К)
Количество загрузок: 32
1

#12 Пользователь не на сайте   emkill ответил: »

 
 
  • Newbie
  • *
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 1
  • Регистрация: 18-Декабрь 12
  • Репутация: 0
  • IPB version:3.2.x
 

Отправлено 18 Декабрь 2012 - 01:22

хух... ребята. кому эти фиксы не помогли на 3.2, вот мой дополнительный :)

$display = "=?UTF-8?B?" . base64_encode($display) . "?=";
$this->from			= $this->_cleanEmail( $email );


добавить первую строчку из цитаты выше в функцию setFrom
0

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна