Beispiel #1
0
        //
        // This constructor validates and stores the components of an e-mail address.
        //
        // Preconditions:
        // - 'address' must not be null or empty.
        //
        // Postconditions:
        // - The e-mail address components from the given 'address' are parsed, which should be formatted as:
        // "EncodedDisplayname" <username@host>
        // - If a 'displayName' is provided separately, it overrides whatever display name is parsed from the 'address'
        // field.  The display name does not need to be pre-encoded if a 'displayNameEncoding' is provided.
        //
        // A FormatException will be thrown if any of the components in 'address' are invalid.
        public MailAddress(string address, string displayName, Encoding displayNameEncoding)
        {
            if (address == null)
            {
                throw new ArgumentNullException("address");
            }
            if (address == String.Empty)
            {
                throw new ArgumentException(SR.GetString(SR.net_emptystringcall, "address"), "address");
            }

            this.displayNameEncoding = displayNameEncoding ?? Encoding.GetEncoding(MimeBasePart.defaultCharSet);
            this.displayName         = displayName ?? string.Empty;

            // Check for bounding quotes
            if (!String.IsNullOrEmpty(this.displayName))
            {
                this.displayName = MailAddressParser.NormalizeOrThrow(this.displayName);

                if (this.displayName.Length >= 2 && this.displayName[0] == '\"' &&
                    this.displayName[this.displayName.Length - 1] == '\"')
                {
                    // Peal bounding quotes, they'll get re-added later.
                    this.displayName = this.displayName.Substring(1, this.displayName.Length - 2);
                }
            }

            MailAddress result = MailAddressParser.ParseAddress(address);

            this.host     = result.host;
            this.userName = result.userName;

            // If we were not given a display name, use the one parsed from 'address'.
            if (String.IsNullOrEmpty(this.displayName))
            {
                this.displayName = result.displayName;
            }
        }
Beispiel #2
0
        //
        // This constructor validates and stores the components of an e-mail address.
        //
        // Preconditions:
        // - 'address' must not be null or empty.
        //
        // Postconditions:
        // - The e-mail address components from the given 'address' are parsed, which should be formatted as:
        // "EncodedDisplayname" <username@host>
        // - If a 'displayName' is provided separately, it overrides whatever display name is parsed from the 'address'
        // field.  The display name does not need to be pre-encoded if a 'displayNameEncoding' is provided.
        //
        // A FormatException will be thrown if any of the components in 'address' are invalid.
        public MailAddress(string address, string displayName, Encoding displayNameEncoding)
        {
            if (address == null)
            {
                throw new ArgumentNullException(nameof(address));
            }
            if (address == string.Empty)
            {
                throw new ArgumentException(SR.Format(SR.net_emptystringcall, nameof(address)), nameof(address));
            }

            _displayNameEncoding = displayNameEncoding ?? Encoding.GetEncoding(MimeBasePart.DefaultCharSet);
            _displayName         = displayName ?? string.Empty;

            // Check for bounding quotes
            if (!string.IsNullOrEmpty(_displayName))
            {
                _displayName = MailAddressParser.NormalizeOrThrow(_displayName);

                if (_displayName.Length >= 2 && _displayName[0] == '\"' &&
                    _displayName[_displayName.Length - 1] == '\"')
                {
                    // Peal bounding quotes, they'll get re-added later.
                    _displayName = _displayName.Substring(1, _displayName.Length - 2);
                }
            }

            MailAddress result = MailAddressParser.ParseAddress(address);

            _host     = result._host;
            _userName = result._userName;

            // If we were not given a display name, use the one parsed from 'address'.
            if (string.IsNullOrEmpty(_displayName))
            {
                _displayName = result._displayName;
            }
        }
Beispiel #3
0
 public MailAddress(string address)
 {
     MailAddressParser.TryParseAddress(address, out ParseAddressInfo _, throwExceptionIfFail: true);
 }
Beispiel #4
0
 public MailAddress(string address)
 {
     MailAddressParser.ParseAddress(address);
 }