public NotificationAddressModel(string localpart, IWebDomain domain, string smtpServer, int smtpPort,
                                        string smtpAccount, bool smtpAuth, EncryptionType smptEncryptionType,
                                        AuthenticationType smtpAuthenticationType)
            : base(localpart, new WebDomainBase(domain))
        {
            if (domain == null)
            {
                throw new ArgumentException("Invalid domain", "domain");
            }

            if (String.IsNullOrEmpty(smtpServer))
            {
                throw new ArgumentNullException("smtpServer");
            }

            if (smtpPort < 0)
            {
                throw new ArgumentException("Invalid smtp port", "smtpPort");
            }

            if (String.IsNullOrEmpty(smtpAccount))
            {
                throw new ArgumentNullException("smtpAccount");
            }

            Domain                 = domain;
            SmtpAccount            = smtpAccount;
            SmtpServer             = smtpServer;
            SmtpPort               = smtpPort;
            SmtpAuth               = smtpAuth;
            SmptEncryptionType     = smptEncryptionType.GetEnumDescription();
            SmtpAuthenticationType = smtpAuthenticationType.GetEnumDescription();
        }