Code:
$ dig brianlance.com mx
; <<>> DiG 9.3.2 <<>> brianlance.com mx
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10191
;; flags: qr rd ra; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 3
;; QUESTION SECTION:
;brianlance.com. IN MX
;; ANSWER SECTION:
brianlance.com. 300 IN MX 10 aspmx5.googlemail.com.
brianlance.com. 300 IN MX 0 aspmx.l.google.com.
brianlance.com. 300 IN MX 5 alt1.aspmx.l.google.com.
brianlance.com. 300 IN MX 5 alt2.aspmx.l.google.com.
brianlance.com. 300 IN MX 10 aspmx2.googlemail.com.
brianlance.com. 300 IN MX 10 aspmx3.googlemail.com.
brianlance.com. 300 IN MX 10 aspmx4.googlemail.com.
;; ADDITIONAL SECTION:
aspmx5.googlemail.com. 965 IN A 74.125.130.27
aspmx2.googlemail.com. 400 IN A 173.194.69.27
aspmx4.googlemail.com. 2047 IN A 173.194.78.27
;; Query time: 446 msec
;; SERVER: 205.133.7.2#53(205.133.7.2)
;; WHEN: Sat Jul 21 21:29:10 2012
;; MSG SIZE rcvd: 256
Looks like your MX records are set to use Google for incoming mail. Unless Hotmail is somehow getting a different DNS response, it should
never look at the A record (which points to your Linode) as a place to deliver mail.
Postfix is doing the right thing by returning a 5xx (permanent) error code - does Hotmail send a bounce message to your wife?
Since Postfix needs to accept mail for other domains, you can't just firewall it off from the outside world. The only other option I can think of would be to have Postfix return a different error code to tell Hotmail to stop doing this, but I don't think there's one more appropriate.