On 4/15/2014 9:52 AM, David F. Skoll wrote:
On Tue, 15 Apr 2014 09:35:19 -0400
"Kevin A. McGrail" <[email protected]> wrote:
- All the various recipients that acknowledge p=reject reject the
mail as forged
That's the part I don't understand. Mail from my list will not have
a yahoo.com envelope sender. And if I remove the DKIM header, what basis
could third parties possibly have for considering the email to be forged?
Ignoring the why, I can tell you we have had issues with emails from
Yahoo! users on the mailing list causing bounces back from yahoo.com,
email.msn.com, msn.com, hotmail.com, sbcglobal.net, live.com, att.net,
pacbell.net, comcast.net and likely more.
Anyway, for now, I'm simply going to ban yahoo.com users from posting
to our mailing lists until I sort this out.
Makes sense to me.
For those who care, attached is my latest version of the code in MD that
I used to rewrite Yahoo! emails to mailing lists for MIMEDefang in
filter_end.
We use it to identify mailing lists, exempt administrivia messages and
modify messages from yahoo! users to a generic do-not-reply address
which we then manually moderate. It also notifies the Yahoo! sender and
recommends the use a different email company (Gmail in our case), etc.
regards,
KAM
# Patch to rewrite Yahoo! emails to mailing lists for MIMEDefang in filter_end
#YAHOO DMARC RESOLUTION
foreach $recip (@Recipients) {
# BLOCK IF FROM YAHOO BECAUSE THEY SET DMARC TOO STRICTLY
#
http://www.pcworld.com/article/2141120/yahoo-email-antispoofing-policy-breaks-mailing-lists.html
# If Sender is Yahoo and recipient is a mailing list - NOTE Only
Yahoo.com rejects as of 4/14 so not hitting
|rocketmail\.com|ymail\.com|yahoo\.com\.au|yahoo\.ca|yahoo\.co\.uk
# exclude the admnistrivia addresses like admin confirm, join, leave, etc.
if ($Sender =~ /\@yahoo\.com>?$/i
and
($recip =~ m/\@mailman\./i or
#... more logic for identifying your mailing lists goes in the
section ...
and
($recip !~
/\-(admin|bounces|confirm|join|leave|owner|request|subscribe|unsubscribe)\@/i)
) {
my ($container, $parser, $original, $report2, $yahoo_reject_notice,
$sender);
# NOTIFY SENDER AND REWRITE THE SENDER TO A DO-NOT-REPLY ADDRESS
md_syslog('warning', "Modifying Yahoo! message to mailing list due to
DMARC - $recip - $Sender - $Subject");
$yahoo_reject_notice = "Your email to $recip was modified due to a
change Yahoo! implemented which causes your email on mailing lists to be
flagged incorrectly as a forgery.
In order to permit your email through to the mailing list, we have rewritten
the From address to a do-not-reply address. Depending on the list
configuration, you may not receive replies and will need to monitor the list.
Additionally, this may delay your email as it will require manual intervention
by the list moderator to approve.
We apologize for the inconvenience but the cause of the issue rests squarely
and solely on Yahoo! We recommend you consider a free Google account available
at http://www.gmail.com/. For more technical information, please see:
http://www.pcworld.com/article/2141120/yahoo-email-antispoofing-policy-breaks-mailing-lists.html
Sincerely,
Kevin A. McGrail
President, PCCC";
# SAVE NOTIFY SETTINGS
my ($save_NotifyNoPreamble, $save_NotifySenderSubject,
$save_DaemonAddress);
$save_NotifySenderSubject = $NotifySenderSubject;
$save_NotifySenderSubject = $NotifySenderSubject;
$save_DaemonAddress = $DaemonAddress;
#CUSTOMIZE NOTIFICATION PARAMS
$sender = '[email protected]';
$DaemonAddress = '[email protected]';
$NotifyNoPreamble = 1;
$NotifySenderSubject = "Important Mailing List Notification
re:[$Subject]";
#SEND NOTIFICATION
action_notify_sender("$yahoo_reject_notice\n");
#TEMPORARILY REMOVE MAILING LIST
#delete_recipient($recip); - NO LONGER NEEDED WITH REWRITE OF FROM
#Possible Improvement is to do a DKIM/SPF/etc. check on the email
before rewriting to minimize forgeries getting farther in the process.
#CHANGE SENDER ON ENVELOPE
change_sender($sender);
#CHANGE SENDER ON FROM
if (&check_header(header=>'From')) {
action_delete_all_headers('From');
action_delete_all_headers('Reply-To');
action_add_header("From",'"Yahoo! Modified Email" <$sender>');
action_add_header("Reply-To", "<$Sender>");
}
# RESTORE NOTIFY SETTINGS
$NotifySenderSubject = $save_NotifySenderSubject;
$NotifySenderSubject = $save_NotifySenderSubject;
$DaemonAddress = $save_DaemonAddress;
}
}
#END YAHOO DEMARC
# check the HEADERS file and return any instances of a specific parameter
header (case insensitive on header name)
sub check_header {
my (%params) = @_;
my ($filehandle, $preslurp, $contents, $output);
$params{'header'} || return undef;
$filehandle = new IO::File('< ./HEADERS') or return undef;
while (<$filehandle>) {
if ($_ =~ /^$params{'header'}:/i) {
$output .= $_;
}
}
close ($filehandle);
return $output;
}
_______________________________________________
NOTE: If there is a disclaimer or other legal boilerplate in the above
message, it is NULL AND VOID. You may ignore it.
Visit http://www.mimedefang.org and http://www.roaringpenguin.com
MIMEDefang mailing list [email protected]
http://lists.roaringpenguin.com/mailman/listinfo/mimedefang