I'm running exim4 (4.76) on Ubuntu 12.0.4.4.
exim4 is set up to handle mail for mydomain.com. I have aliases set up that forward a@mydomain.com to b@gmail.com. I have SpamAssassin set up to work in conjunction with exim4 (via sa-exim.conf).
Sometimes spam is sent to a@mydomain.com and SpamAssassin assigns it a low enough score that it forwards it to b@gmail.com. GMail rejects the message as spam, so my exim4 server attempts to send a message back to the spam address saying:
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
b@gmail.com
(generated from a@mydomain.com)
SMTP error from remote mail server after end of data:
host gmail-smtp-in.l.google.com [2607:f8b0:4003:c02::1a]:
550-5.7.1 [xxxx:yyyy::zzzz:aaaa:bbbb:ccccc 12] Our system has detected that
550-5.7.1 this message is likely unsolicited mail. To reduce the amount of spam
550-5.7.1 sent to Gmail, this message has been blocked. Please visit
550-5.7.1 http://support.google.com/mail/bin/answer.py?hl=en&answer=188131 for
550 5.7.1 more information. c15si25934770obf.31 - gsmtp
I don't want this email sent back to the spam address because it reveals "b@gmail.com", the destination of an alias.
How can I either remove "b@gmail.com" from the reject email, or suppress that reject email altogether?
Answer
I would not recommend trying to hide your e-mail structure. If it breaks, you will likely be missing the appropriate information to fix the problem.
It is Google is blocking the message, so the problem may be with your server. If your email structure is not well done (fixed IP address, valid rDNS, SPF, DKIM, and optionnally DMARC records), then Google may be bouncing the messages because they come from your server.
If your server is well configured and you are getting high volumes of such bounces, then your spam filtering may not be very effective. Improve your spam filtering. Three spam blocking techniques I have found highly effective are:
- Using the
zen.spamhaus.org
blocklist. - Using
spamassassin
to filter email before acceptance. Thesa-exim
works well with the heavy build ofExim
. - Adding a delay of about 10 to 20 seconds to each step (connect, helo, mail, recipient) for any connecting host which fails rDNS validation. This requires a couple of extra ACLs, and modification to the existing ACLs. This is the ACL section I use before the accept. Add these after accepting local and authorized mail. The pipelining control is only used in the connect ACL.
# Verify reverse DNS lookup of the sender's host.
# Delay and disable pipelining on failure.
warn
!verify = reverse_host_lookup
delay = 20s
control = no_pipelining
If you want to verify that the destination is valid, you can use callouts. However, Gmail may end up blocking you if you do so. The following code from the standard configuration does recipient callouts.
# Verify recipients listed in local_rcpt_callout with a callout.
# This is especially handy for forwarding MX hosts (secondary MX or
# mail hubs) of domains that receive a lot of spam to non-existent
# addresses. The only way to check local parts for remote relay
# domains is to use a callout (add /callout), but please read the
# documentation about callouts before doing this.
deny
!acl = acl_local_deny_exceptions
recipients = ${if exists{CONFDIR/local_rcpt_callout}\
{CONFDIR/local_rcpt_callout}\
{}}
!verify = recipient/callout
Comments
Post a Comment