MailAddress 类

定义

表示电子邮件发件人或收件人的地址。

public ref class MailAddress
public class MailAddress
type MailAddress = class
Public Class MailAddress
继承
MailAddress

示例

下面的代码示例演示如何使用SmtpClientMailAddressMailMessage类发送电子邮件。

public static void CreateCopyMessage(string server)
{
    MailAddress from = new MailAddress("[email protected]", "Ben Miller");
    MailAddress to = new MailAddress("[email protected]", "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 email message from an application very easily.";
    // Add a carbon copy recipient.
    MailAddress copy = new MailAddress("[email protected]");
    message.CC.Add(copy);
    SmtpClient client = new SmtpClient(server);
    // Include credentials if the server requires them.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    Console.WriteLine("Sending an email 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());
    }
}

注解

MailAddress用于SmtpClientMailMessage存储电子邮件的地址信息。

邮件地址由 用户名主机名和可选 显示名称组成。 DisplayName 如果对其进行编码,则可以包含非 ASCII 字符。

MailAddress 类支持以下邮件地址格式:

  • 的简单地址格式 user@hostDisplayName如果未设置,则这是生成的邮件地址格式。

  • 标准带引号的 "display name" <user@host>显示名称格式。 如果设置了, DisplayName 则这是生成的格式。

    • 如果尚未包含尖括号,则会在 User 名称和名称 Host 周围添加尖括号。 例如, "display name" user@host 更改为 "display name" <user@host>
    • 如果尚未包含它们,则会在周围 DisplayName添加引号。 例如, display name <user@host> 更改为 "display name" <user@host>
    • 属性支持 DisplayName Unicode 字符。

在这两种格式中,允许以下元素:

  • User带引号的名称。 例如,"user name"@host
  • 括号域文本。 例如,<user@[my domain]>
  • 评论。 例如,(comment)"display name"(comment)<(comment)user(comment)@(comment)domain(comment)>(comment)。 注释在传输之前被删除。
  • .NET 9 及更早版本:用户名中的连续和尾随点。 例如,user...name..@host。 (从 .NET 10 开始,不允许连续点。

逗号用于分隔邮件地址列表中的元素。 因此,不应在列表中未带引号的显示名称中使用逗号。 允许以下邮件地址:

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

不允许以下邮件地址:

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

引号可以嵌入在带引号的字符串中,但它们必须转义。 允许以下邮件地址:

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

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

不允许以下邮件地址:

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

如果未引用用户名,则字符串开头(或逗号)和地址之间的所有文本都被视为其中的一部分 DisplayName,包括注释。 例如:

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

尽管该 MailAddress 类接受有效邮件地址,但其他邮件服务器可能不接受该邮件地址。

此类 MailAddress 不支持以下邮件地址格式:

  • 带引号和无引号的显示名称。 例如,display "name" <user@host>
  • 组,如 IETF 发布的 RFC 2822 第 3.4 节中所述。
  • 或已过时的用户名格式"user"."name"@hostuser."name"@host"user".name@host
  • 仅.NET 10 及更高版本:用户名中的连续点,例如[email protected]

构造函数

名称 说明
MailAddress(String, String, Encoding)

使用指定的地址、显示名称和编码初始化类的新实例 MailAddress

MailAddress(String, String)

使用指定的地址和显示名称初始化类的新实例 MailAddress

MailAddress(String)

使用指定的地址初始化类的新实例 MailAddress

属性

名称 说明
Address

获取创建此实例时指定的电子邮件地址。

DisplayName

获取由创建此实例时指定的显示名称和地址信息的显示名称。

Host

获取创建此实例时指定的地址的主机部分。

User

从创建此实例时指定的地址获取用户信息。

方法

名称 说明
Equals(Object)

比较两个邮件地址。

GetHashCode()

返回邮件地址的哈希值。

GetType()

获取当前实例的 Type

(继承自 Object)
MemberwiseClone()

创建当前 Object的浅表副本。

(继承自 Object)
ToString()

返回此实例的字符串表示形式。

TryCreate(String, MailAddress)

创建新的 MailAddress。 如果无法创建对象,则不会引发异常。

TryCreate(String, String, Encoding, MailAddress)

新建 MailAddress。 如果无法创建对象,则不会引发异常。

TryCreate(String, String, MailAddress)

新建 MailAddress。 如果无法创建对象,则不会引发异常。

适用于