Thought I would post a final update regarding all of this and thank
everyone for their thoughts, help, pointers, resources and time.
In the end there were two problems that appear* to have been causing
mail to be flagged as spam.
1) SPF / IPv6
I set up SPF records a while ago, maybe a few months, when I got the
alertferret domain and rejigged my exim config to allow me to add email
domains to my server by just having config files** added by puppet.
I did not realise at the time that my server would attempt to contact
other people's servers using IPv6, I thought that IPv6 was only in use
within bitfolk's borders.
I have not been keeping up with IPv6 rollout/adoption so this is my bad.
Since there are no AAAA entries for my machines nor PTR records when my
exim server spoke to google's mail servers it failed the SPF test and
got canned as spam not ham.
Fair enough.
Current fix is to stop exim using IPv6, I now need to go and look at my
machines IPv6 setup at some point.
This would not, I assume, have been a problem if I were using a 3rd
party email provider like sendgrid/mandrill.
2) Content
The alertferret domain is used by a little service I wrote which sends
messages on behalf of the user.
The messages were taking advantage of "Reply-To" to ensure that if the
recipient just hit "Reply" on their MUA the message would be sent to the
user who created the message content, not the "noreply(a)alertferret.com"
address used as "From" address on the emails.
Removing this stops the google/hotmail systems from canning the messages
as spam.
This would not have been fixed by using a 3rd party email provider like
sendgrid/mandrill.
Conclusions
I would like to be able to use Reply-To as it was intended, and I think
my use is perfectly legitimate, the messages themselves make it clear
that the message has been sent on behalf of someone else, and clearly
states the person's email address.
Unfortunately spammers have messed it up for everyone by making the
"Reply-To" header a signal for spam.
I may have to add an auto-responder to the "noreply(a)alertferret.com"
address to inform the person that they should maybe reply to the email
in the message rather than the "From" address.
Also, having a 19 year old domain that has always been well-behaved
w.r.t email and is whitelisted by a few resources is great but I think I
need to get a new throwaway domain to test email things in the future.
Thanks,
Nigel
* since this is still all a bit voodoo and unknowable because I cannot
ask G/MS which items actually were responsible for getting flagged as spam
** user and alias lists