Details
Description
Symptom:
Bounces are received and marked as processed,
but bounced email never get "on hold" status.
How to test:
Create invalid yahoo email (I used qweasdzxc@yahoo.com) in group
and send email to this group.
Bounce is received with following content:
<qweasdzxc@yahoo.com>: host d.mx.mail.yahoo.com[209.191.88.247] said: 554
delivery error: dd This user doesn't have a yahoo.com account
(qweasdzxc@yahoo.com) [-5] - mta310.mail.mud.yahoo.com (in reply to end of
DATA command)
See that mail report reports no bounces and emails is not "on hold".
It will not change status to "on hold" even after many bounces.
Reason:
The bounce pattern-matching system matches patterns against
unchanged bounce content. The hurting part is SPACES.
The bounce content may contain many different extra spaces
which break patter-matching.
Some mail processing systems
do line wrapping and indent by adding spaces or tabs.
Remedy:
File: CRM/Mailing/BAO/BouncePattern.php
Line: 94
Function: match( &$message )
Add following line before pattern-matching loop:
$message = preg_replace( '/\s+/', ' ', $message );
This replaces all consequent different spaces with one single space,
which is suitable for pattern-matching.