I use Mandrill to send my transactional emails. Several days ago I started to analyse bounces and found some interesting reports. Some of my hard bounces have following messages simultaneously:
Queued mail for delivery
smtp;550 5.1.1 RESOLVER.ADR.RecipNotFound; not found
It seems that mailbox is invalid. To prove this, I tried to send an email using terminal:
$ telnet mx.example.com 25
Trying 100.100.100.100...
Connected to mx.example.com.
Escape character is '^]'.
220 mx.example.com Microsoft ESMTP MAIL Service ready at Wed, 6 May 2015 20:01:56 +0300
HELO mx.example.com
250 mx.example.com Hello [200.200.200.200]
MAIL FROM: <noreply@mysite.com>
250 2.1.0 Sender OK
RCPT TO: <user@example.com>
250 2.1.5 Recipient OK
DATA
354 Start mail input; end with <CRLF>.<CRLF>
from: noreply@mysite.com
to: user@example.com
subject: test
Hi!
.
250 2.6.0 <99534bb0-ed72-428b-a487-48aaac32ca11@tmh-srv080.hq.tmh.local> [InternalId=727698] Queued mail for delivery
QUIT
221 2.0.0 Service closing transmission channel
Connection closed by foreign host.
So, it seems, Microsoft ESMTP MAIL Service does not check recipient, but push my message into the queue. Actually I could not get 550 code from mail server in terminal, but Mandrill could.
Any ideas how it is done in Mandrill? Is it possible to validate email when server uses Microsoft ESMTP MAIL Service?