There is no setter for the Address property, therefore, unless you know the underlying field name (if it even uses one), you cannot get NHibernate to map to it.
Based on the problem with the Address property and the fact that MailAddress does not have a default constructor, it may not be the best of ideas to map directly to the MailAddress class. My suggestion is to map to a couple of private fields and then create helper methods or accessors to get and set the Sender property. What you lose from doing that is the ability to query on that property like this:
Code:
from Email e where e.Sender.DisplayName = :name
Instead, you will have to write this (assuming the field name is senderDisplayName):
Code:
from Email e where e.senderDisplayName = :name
An alternative is to extend the MailAddress class and give it what it is missing. I would advise against it though.