MailAddress クラス

定義

電子メールの送信者または受信者のアドレスを表します。

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

次のコード例では、 SmtpClientMailAddress、および MailMessage クラスを使用して電子メール メッセージを送信する方法を示します。

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 email 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 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 クラスは、電子メール メッセージのアドレス情報を格納するために、SmtpClientクラスとMailMessage クラスによって使用されます。

メール アドレスは、 ユーザー名ホスト名、およびオプションの 表示名で構成されます。 DisplayName エンコードする場合は、非 ASCII 文字を含めることができます。

MailAddress クラスは、次のメール アドレス形式をサポートしています。

  • user@hostの単純なアドレス形式。 DisplayNameが設定されていない場合、これは生成されるメール アドレスの形式です。

  • "display name" <user@host>の標準的な引用符で囲まれた表示名形式。 DisplayNameが設定されている場合、これは生成される形式です。

    • まだ含まれていない場合は、 User 名と Host 名の周囲に山かっこが追加されます。 たとえば、 "display name" user@host"display name" <user@host> に変更されます。
    • まだ含まれていない場合は、 DisplayNameの周囲に引用符が追加されます。 たとえば、 display name <user@host>"display name" <user@host> に変更されます。
    • unicode 文字は、 DisplayName プロパティでサポートされています。

これら 2 つの形式では、次の要素を使用できます。

  • 引用符で囲まれた 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 以降のバージョンのみ: ユーザー名の連続するドット (例: user...name@host.com)。

コンストラクター

名前 説明
MailAddress(String, String, Encoding)

指定したアドレス、表示名、およびエンコードを使用して、 MailAddress クラスの新しいインスタンスを初期化します。

MailAddress(String, String)

指定したアドレスと表示名を使用して、 MailAddress クラスの新しいインスタンスを初期化します。

MailAddress(String)

指定したアドレスを使用して、 MailAddress クラスの新しいインスタンスを初期化します。

プロパティ

名前 説明
Address

このインスタンスの作成時に指定された電子メール アドレスを取得します。

DisplayName

このインスタンスの作成時に指定された表示名とアドレス情報から構成される表示名を取得します。

Host

このインスタンスの作成時に指定されたアドレスのホスト部分を取得します。

User

このインスタンスの作成時に指定されたアドレスからユーザー情報を取得します。

メソッド

名前 説明
Equals(Object)

2 つのメール アドレスを比較します。

GetHashCode()

メール アドレスのハッシュ値を返します。

GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Objectの簡易コピーを作成します。

(継承元 Object)
ToString()

このインスタンスの文字列形式を返します。

適用対象