Почта WP, отправленная получателям MS Exchange = случайное повреждение электронной почты?


Мой офис обрабатывает множество электронных писем, полученных из форм на основе WordPress (в основном с использованием плагина Pro). Начиная с последних 6 месяцев, одно из каждых ~15 электронных писем, отправленных с WP, будет повреждено. В теле письма появятся знаки равенства и неработающий HTML.

Я замечаю, что это происходит с сообщениями, получаемыми ТОЛЬКО клиентами Outlook/Exchange. В этом случае все в офисе используют Exchange. Те же электронные письма, отправленные в Gmail или другой в сервисе нет коррупции.

Ситуация становится более запутанной и трудной для диагностики из-за следующих деталей:

  • Похоже, что это не проблема, характерная для Грозного профессионала. Другие плагины, которые отправляют электронную почту через WordPress, также затронуты.
  • Не каждое электронное письмо затронуто, электронное письмо для отправки формы человека А может быть отправлено через Exchange нормально, электронное письмо для отправки формы человека Б повреждено (пришло из той же формы) - по-видимому, без шаблон
  • Почта, поступающая из других приложений, отличных от WordPress (таких как система продажи билетов, пользовательская форма PHP и т.д.), На том же веб-сервере, использующая тот же SMPT для исходящей почты, не имеет этой проблемы. Это определенно проблема, которая связана с WP. Все другие автоматические электронные письма, внутренние/внешние коммуникации через сервер Exchange не были повреждены.
  • Наши получатели используют последнюю версию Exchange server (полностью исправлена)

Единственный выводы, которые я могу сделать, заключаются в том, что это некая комбинация WP Mail, MIME и Exchange. Ниже приведен прикрепленный скриншот и отредактированный заголовок проблемного электронного письма.

Буду весьма признателен за любую помощь в том, в каком направлении я могу продолжить диагностику этой проблемы

Спасибо

corrupt email body from wordpress

Received: from smtp.school.edu (XXX.XXX.XXX.XXX) by email.school.edu
 (XXX.XXX.XXX.XXX) with Microsoft SMTP Server id 14.3.266.1; Sun, 15 Nov 2015
 21:15:40 -0600
DKIM-Signature: [v=1; a=rsa-sha1; c=relaxed/relaxed;
  s=s1024; d=school.edu;
  h=subject:to:date:from:message-id:mime-version:content-type;
  bh=XXXXXX;
  b=XXXXXX
DomainKey-Signature: a=rsa-sha1; q=dns; c=nofws;
  s=s1024; d=school.edu;
  h=subject:to:date:from:message-id:mime-version:content-type;
  b=XXXXXX
Received: from WWW1.school.edu ([XXX.XXX.XXX.XXX]) by smtp.school.edu with
 Microsoft SMTPSVC(7.0.6002.18264);  Sun, 15 Nov 2015 21:15:40 -0600
Subject: =?UTF-8?B?TGlicmFyeSAtIFXXXXXgU3VnZ2VzdGlvXXXXXXtaXR0ZWQgb24gTFNVIExXXXXXcm1z?=
To: <[email protected]>
X-PHP-Originating-Script: 0:class-phpmailer.php
Date: Mon, 16 Nov 2015 03:15:40 +0000
From: School Web <[email protected]>
Message-ID: <[email protected]>
X-Priority: 3
X-Mailer: PHPMailer 5.2.10 (https://github.com/PHPMailer/PHPMailer/)
Reply-To: <[email protected]>
MIME-Version: 1.0
Return-Path: [email protected]
X-OriginalArrivalTime: 16 Nov 2015 03:15:40.0590 (UTC) FILETIME=[126F9CE0:01D1201D]
X-MS-Exchange-Organization-AuthSource: email.school.edu
X-MS-Exchange-Organization-AuthAs: Anonymous
X-MS-Exchange-Organization-PRD: school.edu
X-MS-Exchange-Organization-SenderIdResult: Pass
Received-SPF: Pass (email.school.edu: domain of [email protected]
 designates XXX.XXX.XXX.XXX as permitted sender) receiver=email.school.edu;
 client-ip=XXX.XXX.XXX.XXX; helo=smtp.school.edu;
Content-type: multipart/alternative;
    boundary="B_3530511021_187771850"

> This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

--B_3530511021_187771850
Content-type: text/plain;
    charset="UTF-8"
Content-transfer-encoding: 7bit

Affiliation:<=strong> XXXXXX Student 
Comments: 1. I would feel a lot safer if, after a certain tim=, we would have to swipe our IDs to have access into the building. 
<=r/>2. I wish the undergrads did not have access to our classrooms or our l=brary, especially during finals season. 

3. I would appreciate i= if the library would allow us to have the study rooms for more than 3 hou=s IF all of the other study rooms are not full. I don't see the rationale =ehind kicking us out when there is no one else waiting for the room and th=re are 6  other empty ones not being used... 

--B_3530511021_187771850
Content-type: text/html;
    charset="UTF-8"
Content-transfer-encoding: quoted-printable

<html>
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dutf-8">
</head>
<body>
<table cellspacing=3D"0" style=3D"font-size:12px;line-height:135%; border-b=3Dtto=
m:1px solid #dddddd;">
<tbody>
<tr style=3D"background-color:#eeeeee;">
<th style=3D"text-align:left;color:=3D444444;padding:7px 9px;border-top:1px sol=
id #dddddd">
<strong>Affiliation:&lt;=3Dstrong&gt;</strong></th>
<td style=3D"text-align:left;color:#444444;padding:7px 9px;bor=3Der-top:1px sol=
id #dddddd">
XXXXXX Student</td>
</tr>
<tr style=3D"background-color:#ffffff;">
<th style=3D"text-align:left;color:=3D444444;padding:7px 9px;border-top:1px sol=
id #dddddd">
<strong>Comments:</st=3Dong></strong></th>
<td style=3D"text-align:left;color:#444444;padding:7px 9px;border=3Dtop:1px sol=
id #dddddd">
1. I would feel a lot safer if, after a certain tim=3D, we would have to swip=
e our IDs to have access into the building.
<br>
&lt;=3Dr/&gt;2. I wish the undergrads did not have access to our classrooms o=
r our l=3Dbrary, especially during finals season.
<br>
<br>
3. I would appreciate i=3D if the library would allow us to have the study ro=
oms for more than 3 hou=3Ds IF all of the other study rooms are not full. I do=
n't see the rationale =3Dehind kicking us out when there is no one else waitin=
g for the room and th=3Dre are 6
 other empty ones not being used...</td>
</tr>
</tbody>
</table>
</body>
</html>


--B_3530511021_187771850--
Author: samJL, 2015-11-16

1 answers

Я столкнулся с той же проблемой, и после исследования я обнаружил, что это ошибка с class-phpmailer.php . Ошибка, по-видимому, была внесена в WP 4.3.2. Даже если в списке изменений об этом не упоминается, файл был изменен. Только возврат wp-includes/class-phpmailer.php к версии, включенной в WP 4.3.1, исправил проблему.

У самого класса также есть версия, в данном случае я вернулся к 5.2.10.

Кстати, я видел эту проблему только у пользователей Exchange. Но не все из них сообщили это.

Если вам интересно, некоторые пользователи предполагают, что это проблема с fixEOL(), но я не смог заставить ее работать, исправив ее: Несколько символов заменяются на '=' в содержимом почты в wp_mail()

 1
Author: Hernan, 2017-04-13 12:37:42