Create an instance in the database in a preset table/BO that we can write rules on.
For example, let's say there is a default BO called "EmailLog" (similar to SystemSettings and RegularUser it exists by default or you can create it) then when an email fails an instance is created in this Object. It can be as simple as Timestamp, LoginName, From, To, Subject so when a fail happens it gets logged in that BO.
This way we can write rules to deal with failures in an automated fashion, for example we could write rule IS NEW THEN send an email to login name "Your email to xxx on zzz with the Subject aaa has failed to send, please check all details and send again"
It would be even better if we got an error code for why it didn't send:
100 = no To address
101 = no From address
102 = could not authenticate with mail server
103 = time out (attachment too large)
etc