View Issue Details

IDProjectCategoryView StatusLast Update
0019727phpList 3 applicationAuthentication Systempublic22-01-19 14:57
Reporterairelle 
PrioritynormalSeveritycrashReproducibilityalways
Status newResolutionopen 
Product Version3.3.8 
Target VersionFixed in Version 
Summary0019727: A footer which ends by a DOT makes DKIM fails
DescriptionI write a campaign and I send some test messages to see if everything is OK.
If the footer ends by a DOT, DKIM fails. If I delete the final dot, DKIM passes.
Steps To ReproduceWrite a campaign - text only or HTML - that doesn't matter.

1) write the following in the footer :
`test [PREFERENCESURL]`
Send test message to a Gmail address : I have SPF, DMARC and DKIM marked **PASS**. OK.
I can read in the message source :
     - in text message source : dkim=pass header.i=@mydomain.com header.s=default header.b=yCi7KfhL;
     - in HTML message source : dkim=pass header.i=@mydomain.com header.s=default header.b="WfB8/blJ";

2) Now change the footer by simply adding a final dot, so the footer becomes :
`test [PREFERENCESURL].`
Send test message to a Gmail address : I have SPF, DMARC marked PASS BUT DKIM **FAILS** :
     - in text message source : dkim=neutral (body hash did not verify) header.i=@mydomain.com header.s=default header.b=wpjznhgw;
     - in HTML message source : dkim=neutral (body hash did not verify) header.i=@mydomain.com header.s=default header.b=uwfANvWi;

3) Remove the final dot and send test message : DKIM passes again.
     - in text message source : dkim=pass header.i=@mydomain.com header.s=default header.b=tfTZgwfn;
     - in HTML message source : dkim=pass header.i=@mydomain.com header.s=default header.b=rx3KNe39;

4) Now write again the final dot AND A SPACE, so the footer becomes :
`test [PREFERENCESURL]. `
Now DKIM passes !!
     - in text message source : dkim=pass header.i=@mydomain.com header.s=default header.b=BZmC8uQb;
     - in HTML message source : dkim=pass header.i=@mydomain.com header.s=default header.b="oTvqx/AB";
TagsNo tags attached.

Activities

airelle

22-01-19 13:42

reporter   ~0061765

Last edited: 22-01-19 13:49

View 5 revisions

Oh I'm sorry. I see that HTML 'A' tags have been stripped and I don't find how to edit my bugreport. Here, I try the 'code' or 'html' tags as explained in the Mantis documentation, but it does not work... So I try this, replacing '<' by '{' and '>' by '}'...
<html>test {a href="[PREFERENCESURL]"}link{/a}</html> ==> DKIM PASS
<html>test {a href="[PREFERENCESURL]"}link{/a}.</html> ==> DKIM FAILS
<html>test {a href="[PREFERENCESURL]"}link{/a}. </html> ==> DKIM PASS

samtuke

22-01-19 14:06

administrator   ~0061766

@airelle thank you die the report. phpList doesn't handle DKIM directly - if you are using phpmailer, have you tried searching for this issue in relation to phpmailer directly? That is the email sending library that phpList ships with.

airelle

22-01-19 14:29

reporter   ~0061767

@Samtuke yes I already made bugreports about DKIM and found that many problems are linked to PHPMailer. This is why I requested (in June 2018) to update PHPMailer to the 6.0.5 version (or later : actual is 6.0.6), which seems to be fixed... Is the update to latest PHPMailer version soooo difficult to take months ?? :-s

duncanc

22-01-19 14:57

updater   ~0061768

I can repeat the problem but don't think that it is caused by phpmailer.
From what I can see the problem is a line that consists only of a single dot character isn't handled correctly by the mail server when it generates the DKIM hash, then the destination system, gmail or yahoo etc., detects an incorrect hash.

In fact I can repeat the problem sending an email from Thunderbird to my yahoo account through my hosting email account, nothing to do with phplist.
When checking another phplist installation for which mail server it used, I found that I too had been hit by the same problem, caused by a placeholder being followed immediately by a dot. The DKIM hash was incorrect in this case too.

There might be a workaround in detecting problematic lines and changing them in some way.