MailAddress Class

 
System_CAPS_noteNote

The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Represents the address of an electronic mail sender or recipient.

Namespace:   System.Net.Mail
Assembly:  System (in System.dll)

System.Object
  System.Net.Mail.MailAddress

public class MailAddress

NameDescription
System_CAPS_pubmethodMailAddress(String)

Initializes a new instance of the MailAddress class using the specified address.

System_CAPS_pubmethodMailAddress(String, String)

Initializes a new instance of the MailAddress class using the specified address and display name.

System_CAPS_pubmethodMailAddress(String, String, Encoding)

Initializes a new instance of the MailAddress class using the specified address, display name, and encoding.

NameDescription
System_CAPS_pubpropertyAddress

Gets the e-mail address specified when this instance was created.

System_CAPS_pubpropertyDisplayName

Gets the display name composed from the display name and address information specified when this instance was created.

System_CAPS_pubpropertyHost

Gets the host portion of the address specified when this instance was created.

System_CAPS_pubpropertyUser

Gets the user information from the address specified when this instance was created.

NameDescription
System_CAPS_pubmethodEquals(Object)

Compares two mail addresses.(Overrides Object.Equals(Object).)

System_CAPS_protmethodFinalize()

Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.(Inherited from Object.)

System_CAPS_pubmethodGetHashCode()

Returns a hash value for a mail address.(Overrides Object.GetHashCode().)

System_CAPS_pubmethodGetType()

Gets the Type of the current instance.(Inherited from Object.)

System_CAPS_protmethodMemberwiseClone()

Creates a shallow copy of the current Object.(Inherited from Object.)

System_CAPS_pubmethodToString()

Returns a string representation of this instance.(Overrides Object.ToString().)

The MailAddress class is used by the SmtpClient and MailMessage classes to store address information for e-mail messages.

A mail address is composed of a User name, Host name and optionally, a DisplayName. The DisplayName can contain non-ASCII characters if you encode them.

The MailAddress class supports the following mail address formats:

  • A simple address format of user@host. If a DisplayName is not set, this is the mail address format generated.

  • A standard quoted display name format of "display name" <user@host>. If a DisplayName is set, this is the format generated.

  • Angle brackets are added around the User name, Host name for "display name" user@host if these are not included.

  • Quotes are added around the DisplayName for display name <user@host>, if these are not included.

  • Unicode characters are supported in the DisplayName. property.

  • A User name with quotes. For example, "user name"@host.

  • Consecutive and trailing dots in user names. For example, user...name..@host.

  • Bracketed domain literals. For example, <user@[my domain]>.

  • Comments. For example, (comment)"display name"(comment)<(comment)user(comment)@(comment)domain(comment)>(comment). Comments are removed before transmission.

A comma is used to separate elements in a list of mail addresses. As a result, a comma should not be used in unquoted display names in a list. The following mail addresses would be allowed

"John, Doe" <user@host>, "Bob, Smith" <user2@host>

The following mail address would not be allowed:

John, Doe <user@host>, Bob, Smith <user2@host>

Quotes can be embedded in a quoted string, but they must be escaped. The following mail addresses would be allowed

"John \"Jr\" Doe" <user@host>

"\"John \\\"Jr\\\" Doe\" <user@host>"

The following mail address would not be allowed:

"John "Jr" Doe" <user@host>

When the username is note quoted, all text between the start of the string (or comma) and the address are considered part of the DisplayName, including comments.

-- Example: (non comment) unquoted display (non comment) name (non comment) <user@host>

Although the MailAddress class accepts a mail address as valid, other mail servers may not accept the mail address.

The MailAddress class does not support the following mail address formats:

Mixed quoted and unquoted display names. For example, display "name" <user@host>

Groups, as defined in RFC 2822 Section 3.4 published by the IETF.

The obsolete user name formats of "user"."name"@host, user."name"@host or "user".name@host

The following code example demonstrates sending an e-mail message by using the SmtpClient, MailAddress, and MailMessage classes.

public static void CreateCopyMessage(string server)
{
	MailAddress from = new MailAddress("ben@contoso.com", "Ben Miller");
	MailAddress to = new MailAddress("jane@contoso.com", "Jane Clayton");
	MailMessage message = new MailMessage(from, to);
	// message.Subject = "Using the SmtpClient class.";
	message.Subject = "Using the SmtpClient class.";
	message.Body = @"Using this feature, you can send an e-mail message from an application very easily.";
	// Add a carbon copy recipient.
	MailAddress copy = new MailAddress("Notification_List@contoso.com");
	message.CC.Add(copy);
	SmtpClient client = new SmtpClient(server);
	// Include credentials if the server requires them.
	client.Credentials = CredentialCache.DefaultNetworkCredentials;
	Console.WriteLine("Sending an e-mail message to {0} by using the SMTP host {1}.",
		 to.Address, client.Host);

   try {
      client.Send(message);
    }
    catch (Exception ex) {
      Console.WriteLine("Exception caught in CreateCopyMessage(): {0}", 
                  ex.ToString() );
	  }
  }

.NET Framework
Available since 2.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top
Show: