The script that generates smartd.conf uses the mail address root. Since every (more or less) other tool sends their mail to just 'root', these messages tend to be lost using certain setups. My system directs the mail to a central root account by having domain-less addresses routed to a complete non-local address. In order to catch these localhost.localdomain addresses I had to add a special alias for them. Please change the script so it uses just 'root' (or gets the machine's domain name if you insist on a complete address). The current situation is terribly annoying and repeatedly causes errors.
Is root@localhost (that's the way it is in the latest FC development package) good enough?
No, the name needs to be unqualified. The mailserver completes unqualified to user and sends it through normal processing. root@localhost is considered complete so it is scheduled for local delivery instead of being handed of to the central mail server (unless an alias is added). A default crontab has 'MAILTO=root', logwatch has 'MailTo = root' and mdadm has 'MAILADDR root', so smartmontools should probably fall in line. :)