me.com: Host not found

So, once again my mailserver rejected a couple of mails that I would have liked to receive.

Aug  5 08:28:40 yurgon postfix/smtpd[10434]: NOQUEUE: reject: RCPT from st11p00im-amstp002.me.com[17.172.80.96]: 550 5.7.1 <st11p00im-asmtp002.me.com>: Helo command rejected: Host not found; from=<someone@icloud.com> to=<someone@example.com> proto=ESMTP helo=<st11p00im-asmtp002.me.com>
Aug  6 08:28:37 yurgon postfix/smtpd[21322]: NOQUEUE: reject: RCPT from st11p00im-amstp002.me.com[17.172.80.96]: 550 5.7.1 <st11p00im-asmtp002.me.com>: Helo command rejected: Host not found; from=<someone@icloud.com> to=<someone@example.com> proto=ESMTP helo=<st11p00im-asmtp002.me.com>
      

(I realize both deliveries were attempted at almost the exact same time two days in a row. I guess the sender follows a certain schedule; in any case I'm sure these were mails I wanted to receive).

So, my server thinks that the mailserver st11p00im-asmtp002.me.com delivering a mail to me doesn't exist. What gives?

Actually, the first couple of times I saw this message and looked up the aforementioned server, its IP address was returned just fine. Huh. Why the failure then? But right now the problem is easily reproducible on my end:

(yurgon) ~ $ dig st11p00im-asmtp002.me.com

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> st11p00im-asmtp002.me.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 3100
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0

;; QUESTION SECTION:
;st11p00im-asmtp002.me.com.     IN      A

;; AUTHORITY SECTION:
me.com.                 857     IN      SOA     gridmaster-ib.apple.com. hostmaster.apple.com. 2010111799 1800 900 2592000 1800

;; Query time: 0 msec
;; SERVER: 213.133.99.99#53(213.133.99.99)
;; WHEN: Fri Aug  7 02:34:32 2015
;; MSG SIZE  rcvd: 110
      

Okay, in spoken language: the nameserver 213.133.99.99 (provided by my server hoster) says that st11p00im-asmtp002.me.com doesn't currently exist in the Domain Name System. But... my hoster's nameserver isn't authoritative. So let's ask the one that is: me.com, and let's ask it for its nameservers.

(yurgon) ~ $ dig me.com NS

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> me.com NS
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22460
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;me.com.                                IN      NS

;; ANSWER SECTION:
me.com.                 36437   IN      NS      nserver3.apple.com.
me.com.                 36437   IN      NS      nserver.apple.com.
me.com.                 36437   IN      NS      nserver4.apple.com.
me.com.                 36437   IN      NS      nserver.asia.apple.com.
me.com.                 36437   IN      NS      nserver2.apple.com.
me.com.                 36437   IN      NS      nserver.euro.apple.com.

;; Query time: 3 msec
;; SERVER: 213.133.99.99#53(213.133.99.99)
;; WHEN: Fri Aug  7 02:37:44 2015
;; MSG SIZE  rcvd: 175
      

Okay, so me.com provides no less than 6 nameservers that should be able to answer my request. Let's ask them:

(yurgon) ~ $ dig st11p00im-asmtp002.me.com @nserver3.apple.com.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> st11p00im-asmtp002.me.com @nserver3.apple.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 65130
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;st11p00im-asmtp002.me.com.     IN      A

;; AUTHORITY SECTION:
me.com.                 1800    IN      SOA     gridmaster-ib.apple.com. hostmaster.apple.com. 2010111799 1800 900 2592000 1800

;; Query time: 165 msec
;; SERVER: 17.112.144.50#53(17.112.144.50)
;; WHEN: Fri Aug  7 02:42:38 2015
;; MSG SIZE  rcvd: 110


(yurgon) ~ $ dig st11p00im-asmtp002.me.com @nserver.apple.com.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> st11p00im-asmtp002.me.com @nserver.apple.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 3719
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;st11p00im-asmtp002.me.com.     IN      A

;; AUTHORITY SECTION:
me.com.                 1800    IN      SOA     gridmaster-ib.apple.com. hostmaster.apple.com. 2010111799 1800 900 2592000 1800

;; Query time: 157 msec
;; SERVER: 17.254.0.50#53(17.254.0.50)
;; WHEN: Fri Aug  7 02:43:03 2015
;; MSG SIZE  rcvd: 110


(yurgon) ~ $ dig st11p00im-asmtp002.me.com @nserver4.apple.com.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> st11p00im-asmtp002.me.com @nserver4.apple.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 26876
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;st11p00im-asmtp002.me.com.     IN      A

;; AUTHORITY SECTION:
me.com.                 1800    IN      SOA     gridmaster-ib.apple.com. hostmaster.apple.com. 2010111799 1800 900 2592000 1800

;; Query time: 160 msec
;; SERVER: 17.112.144.59#53(17.112.144.59)
;; WHEN: Fri Aug  7 02:43:23 2015
;; MSG SIZE  rcvd: 110


(yurgon) ~ $ dig st11p00im-asmtp002.me.com @nserver.asia.apple.com.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> st11p00im-asmtp002.me.com @nserver.asia.apple.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 28155
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;st11p00im-asmtp002.me.com.     IN      A

;; AUTHORITY SECTION:
me.com.                 1800    IN      SOA     gridmaster-ib.apple.com. hostmaster.apple.com. 2010111799 1800 900 2592000 1800

;; Query time: 184 msec
;; SERVER: 17.82.254.3#53(17.82.254.3)
;; WHEN: Fri Aug  7 02:44:24 2015
;; MSG SIZE  rcvd: 110


(yurgon) ~ $ dig st11p00im-asmtp002.me.com @nserver2.apple.com.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> st11p00im-asmtp002.me.com @nserver2.apple.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 35957
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;st11p00im-asmtp002.me.com.     IN      A

;; AUTHORITY SECTION:
me.com.                 1800    IN      SOA     gridmaster-ib.apple.com. hostmaster.apple.com. 2010111799 1800 900 2592000 1800

;; Query time: 156 msec
;; SERVER: 17.254.0.59#53(17.254.0.59)
;; WHEN: Fri Aug  7 02:44:49 2015
;; MSG SIZE  rcvd: 110


(yurgon) ~ $ dig st11p00im-asmtp002.me.com @nserver.euro.apple.com.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> st11p00im-asmtp002.me.com @nserver.euro.apple.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 25321
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;st11p00im-asmtp002.me.com.     IN      A

;; AUTHORITY SECTION:
me.com.                 1800    IN      SOA     gridmaster-ib.apple.com. hostmaster.apple.com. 2010111799 1800 900 2592000 1800

;; Query time: 36 msec
;; SERVER: 17.72.133.64#53(17.72.133.64)
;; WHEN: Fri Aug  7 02:45:08 2015
;; MSG SIZE  rcvd: 110
      

Sorry for the excruciating verbosity. Did I do anything wrong? Any methodical errors in my lookups? Because to me it looks like 6 out of 6 of Apple's authoritative nameservers told me that their mail server's DNS-name is not known.

If you received a letter from an address you knew for sure doesn't exist, I wouldn't blame you if you didn't accept it -- especially if you received thousands of unsolicited letters per week. And that's exactly what my mail server does.

So, Apple, how about you fix your outgoing mail server's helo name or its DNS?

(Note: As I said above, the DNS lookups have worked okay several times when I tried them; it wasn't until the writing of this article that the lookups actually failed, so the problem appears to be intermittent.)

Update, 2015-08-08 02:23:

After another failed delivery from the same server for the same reason, I did another lookup and this time it worked, just 15 minutes after the failed delivery:

(yurgon) ~ $ dig st11p00im-amstp002.me.com @nserver2.apple.com.

; <<>> DiG 9.8.4-rpz2+rl005.12-P1 <<>> st11p00im-amstp002.me.com @nserver2.apple.com.
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52824
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; WARNING: recursion requested but not available

;; QUESTION SECTION:
;st11p00im-amstp002.me.com.     IN      A

;; ANSWER SECTION:
st11p00im-amstp002.me.com. 86400 IN     A       17.172.80.96

;; Query time: 161 msec
;; SERVER: 17.254.0.59#53(17.254.0.59)
;; WHEN: Sat Aug  8 02:20:55 2015
;; MSG SIZE  rcvd: 59
      

That looks like a rather weird DNS problem.