noisebringer@server:~$ sendmail -tv noisebr@yandex.ru < mail
noisebr@yandex.ru... Connecting to [127.0.0.1] via relay...
220 server ESMTP Sendmail 8.14.4/8.14.4/Debian-4.1ubuntu1; Mon, 30 Jun 2014 15:28:46 +0800; (No UCE/UBE) logging access from: localhost(OK)-localhost [127.0.0.1]
>>> EHLO server250-server Hello localhost [127.0.0.1], pleased to meet you
250-ENHANCEDSTATUSCODES
250-PIPELINING
250-EXPN
250-VERB
250-8BITMIME
250-SIZE
250-DSN
250-ETRN
250-AUTH DIGEST-MD5 CRAM-MD5
250-DELIVERBY
250 HELP
>>> VERB
250 2.0.0 Verbose mode
>>> MAIL From:<noisebringer@server> SIZE=17 AUTH=noisebringer@server
250 2.1.0 <noisebringer@server>... Sender ok
>>> RCPT To:<noisebr@yandex.ru>
----
Вот тут проверка MX зоны
----
>>> DATA
250 2.1.5 <noisebr@yandex.ru>... Recipient ok
354 Enter mail, end with "." on a line by itself
>>> .
050 <noisebr@yandex.ru>... Connecting to mx.yandex.ru. via esmtp...
050 220 mxfront33.mail.yandex.net (Want to use Yandex.Mail for your domain? Visit http://pdd.yandex.ru)
050 >>> EHLO server
050 250-mxfront33.mail.yandex.net
050 250-8BITMIME
050 250-PIPELINING
050 250-SIZE 42991616
050 250-STARTTLS
050 250-DSN
050 250 ENHANCEDSTATUSCODES
050 >>> STARTTLS
050 220 Go ahead
050 >>> EHLO server
050 250-mxfront33.mail.yandex.net
050 250-8BITMIME
050 250-PIPELINING
050 250-SIZE 42991616
050 250-DSN
050 250 ENHANCEDSTATUSCODES
050 >>> MAIL From:<noisebringer@server> SIZE=320
050 250 2.1.0 <noisebringer@server> ok
050 >>> RCPT To:<noisebr@yandex.ru>
----
Вот тут если сервер отвечает что нет такого получателя то отправка прерывается
----
050 >>> DATA
050 250 2.1.5 <noisebr@yandex.ru> recipient ok
050 354 Enter mail, end with "." on a line by itself
050 >>> .
050 451 4.7.1 Sorry, the service is currently unavailable. Please come back later. r7PPVBsJO-SjTW2kfp
----
При подобных ответах ставить в очередь и гонять его время указанное в конфигах (и так работает)
----
050 <noisebr@yandex.ru>... Deferred: 451 4.7.1 Sorry, the service is currently unavailable. Please come back later. Or7PPVBsJO-SjTW2kfp
250 2.0.0 s5U7Sk7T009342 Message accepted for delivery
noisebr@yandex.ru... Sent (s5U7Sk7T009342 Message accepted for delivery)
Closing connection to [127.0.0.1]
>>> QUIT
221 2.0.0 server closing connection
Последнее на чём я сейчас нахожусь, это понимание, что sendmail.cf это не совсем уж и набор кракозябр, а набор правил регулярных выражений, где можно использовать переменные.
То есть вроде бы, как бы в sendmail.сf можно добавить одну строчку, в которой он делает запрос mx записи у домена потенциального получателя и потом соответствующим образом реагирует на ответ.