Re: [exim] Cannot send mails to @hotmail.com addresses

Top Page
Delete this message
Reply to this message
Author: Mike Cardwell
Date:  
To: exim users
Subject: Re: [exim] Cannot send mails to @hotmail.com addresses
Mike Cardwell wrote:
> * on the Sun, Jun 10, 2007 at 07:56:05PM +0200, mavior wrote:
>
>> The mail simply does not arrive in hotmail inbox nor in spam box.Seems
>> like it is silently deleted from hotmail servers,but I don't receive any
>> reject mail back or any other feedback.
>> Any suggestions?
>> thank you
>
> I've found a way around their stupid filters. Well, it works for me
> anyway. Just before the dnslookup router create another router:
>
> hotmail:
>   driver      = dnslookup
>   domains     = hotmail.com : hotmail.co.uk
>   transport   = remote_smtp
>   headers_add = ${run{/usr/bin/perl -e 'print "X-HotMail-Fodder1-\$_: ".("Z"x99)."\n" for 1..220'}{$value}{}}\
>                 ${run{/usr/bin/perl -e 'print "X-HotMail-Fodder2-\$_: ".("Z"x99)."\n" for 1..220'}{$value}{}}
>   ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
>   no_more

>
> This adds lots of large headers to the email message which seems to
> push the message size above a limit somewhere around 50KB at which
> point hotmail stops blackholing my mail. Maybe they don't perform
> certain scans on messages above a certain size.


To further expand on this. It appears that this technique does not
"bypass" their filters, but gives the message a much higher likelyhood
of passing them only. I noticed this when trying to send an email with a
.exe attachment to a hotmail account, which was silently dropped. So I
did a bunch of further tests to verify that this was the case. So what I
did was updated the router to add fake In-Reply-To and References
headers to any email destined for a hotmail account to trick hotmail
into thinking that the email was a reply. When I did this, all email
seems to be getting through. When I remove this, it starts getting
blackholed again:

hotmail:
   driver      = dnslookup
   domains     = hotmail.com : hotmail.co.uk : hotmail.fr : hotmail.it : 
hotmail.de
   condition   = ${if or{\
                    {match{$h_References:}{\N^<BAY\d+-.+@phx\.gbl>$\N}}\
                    {match{$h_In-Reply-To:}{\N^<BAY\d+-.+@phx\.gbl>$\N}}\
                 }{false}{true}}
   transport   = remote_smtp
   headers_add = ${readfile{/etc/exim4/hotmail_fodder.txt}}
   ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
   no_more


The differences:

1.) There are more hotmail domains
2.) It doesn't execute if there are hotmail References or In-Reply-To
headers as the mail will get through anyway
3.) Instead of calling the perl exe to generate the headers, stick them
in a file and use readfile

hotmail_fodder.txt contains the following:

References: <BAY000-000000000000000000000000000@???>
In-Reply-To: <BAY000-000000000000000000000000000@???>

Followed by about 500 lines of these headers:

X-Hotmail-Fodder:
0000000000000000000000000000000000000000000000000000000000000000000000000000000000

Mike