Рейтинг:0

Составное текстовое/html электронное письмо от сообщества Invision не обрабатывается правильно

флаг jp

Прежде всего, да, я связался со службой поддержки Invision Community. Да, я платный пользователь с активной лицензией. Мы ходили туда-сюда несколько часов, и все, что они сказали, это то, что с их программным обеспечением все в порядке, и мне нужно починить свой сервер.

Я использую CentOS 7.9.2009, PHP 8.0.7, Apache 2.4.6 и Exim 4.94.2.

Когда Invision Communtiy отправляет электронные письма, значение From: указывает Apache или Root вместо названия форума, а в html-части электронного письма просто отображается код, а не текстовая часть и html-часть.

У меня также есть php-код, который я написал сам, используя функцию mail() на том же сервере, используя ту же версию php и все, что отправляет идеальные составные электронные письма.

Сравнивая источник электронного письма, отправленного Invision, и электронного письма, отправленного моим кодом, я заметил, что заголовки From: и Content-Type: в электронном письме Invision имеют отступ в один пробел, и те же самые заголовки в электронных письмах, отправленных в моем коде перед ними нет пробелов. Эти заголовки, кажется, игнорируются почтовым клиентом. Вот как выглядит исходник:

MIME-версия: 1.0
 От кого: =?UTF-8?B?SGVsaW9OZXQ=?= <[email protected]>
 Дата: Вт, 29 июня 2021 г. 19:04:36 +0000
 Автоматически отправлено: автоматически сгенерировано
 Content-Type: составной/альтернативный; border="--==_mimepart_3d7970817fa277e018f1936f5865d582"; кодировка = UTF-8
 Контент-передача-кодирование: 8 бит
Идентификатор сообщения: <[email protected]>

Обратите внимание на один пробел перед параметрами From, Date, Auto-Submitted и Content-Type.

Вот как выглядят эти заголовки в электронном письме, которое правильно отображается с того же сервера:

MIME-версия: 1.0
От: "Пример" <[email protected]>
List-Unsubscribe: <mailto:[email protected]>, <https://www.example.com/unsubscribe/?c=3d9795e2646d156972cdf58655c758bd
Content-type: multipart/alternative;boundary=helio60db72e0c0005
Идентификатор сообщения: <[email protected]>
Дата: Вт, 29 июня 2021 г. 19:22:08 +0000
X-AntiAbuse: этот заголовок был добавлен для отслеживания злоупотреблений. Включайте его в любой отчет о злоупотреблениях.

Прежде всего, вызовут ли эти пробелы проблемы, которые я вижу?

Во-вторых, если пробелы являются проблемой, как мне их исправить?

Копаясь в коде Invision, похоже, что они используют пакет PHP Pear Mail. https://pear.php.net/package/Почта Очевидно, что редактировать код Invision или код Pear — плохая идея, потому что любые изменения, скорее всего, будут перезаписаны при следующем обновлении. Есть ли какие-либо настройки сервера, которые я мог бы изменить, чтобы исправить это? Дайте мне знать, если вам нужна дополнительная информация, и я внесу изменения. Спасибо!

Michael Hampton avatar
флаг cz
Единственный пробел в начале называется складным пробелом, а содержимое таких строк считается продолжением предыдущей строки. Таким образом, это сообщение имеет ТОЛЬКО заголовки MIME-Version (с довольно странным и, вероятно, недопустимым значением) и Message-Id. Сообщество Invision, конечно, этого не делает, так что проблема, скорее всего, где-то в другом месте. Почему эта система использует Exim? Это очень странный выбор, который редко встречается за пределами некоторых ниш, таких как массовый веб-хостинг.
Krydos avatar
флаг jp
Сервер является сервером cPanel, и в cPanel установлен Exim.
Michael Hampton avatar
флаг cz
Ага. Тогда вашей следующей остановкой должна стать поддержка cPanel. На самом деле мы не принимаем здесь вопросы о системах cPanel.
Krydos avatar
флаг jp
Ой, извини. Я этого не понимал. Спасибо!
Paul avatar
флаг cn
@Krydos Вы должны закрыть свой вопрос, так как он считается не по теме здесь, в Server Fault из-за установки панели управления веб-хостингом, но, пожалуйста, вернитесь и задайте вопросы по другим темам.
Krydos avatar
флаг jp
Я решил это сам, отредактировав код Invision, и это не имело никакого отношения к cPanel. Я, очевидно, новичок здесь, но не лучше ли было бы получить принятый ответ, а не удалять его полностью?
Рейтинг:1
флаг jp

Мне удалось решить эту проблему, отредактировав код Invision и изменив одно вхождение PHP_EOL на «\r\n». Надеюсь, они включат мои изменения в будущие версии своего программного обеспечения.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.