MailMessage クラス

定義

SmtpClient クラスを使用して送信できる電子メール メッセージを表します。Represents an email message that can be sent using the SmtpClient class.

public ref class MailMessage : IDisposable
public class MailMessage : IDisposable
type MailMessage = class
    interface IDisposable
Public Class MailMessage
Implements IDisposable
継承
MailMessage
実装

次のコード例は、添付ファイルを含む電子メールメッセージを作成して送信する方法を示しています。The following code example demonstrates creating and sending an email message that includes an attachment.

static void CreateMessageWithAttachment( String^ server )
{
   
   // Specify the file to be attached and sent.
   // This example assumes that a file named Data.xls exists in the
   // current working directory.
   String^ file = L"data.xls";
   
   // Create a message and set up the recipients.
   MailMessage^ message = gcnew MailMessage( L"jane@contoso.com",L"ben@contoso.com",L"Quarterly data report.",L"See the attached spreadsheet." );
   
   // Create  the file attachment for this email message.
   Attachment^ data = gcnew Attachment(file, MediaTypeNames::Application::Octet);
   
   // Add time stamp information for the file.
   ContentDisposition^ disposition = data->ContentDisposition;
   disposition->CreationDate = System::IO::File::GetCreationTime( file );
   disposition->ModificationDate = System::IO::File::GetLastWriteTime( file );
   disposition->ReadDate = System::IO::File::GetLastAccessTime( file );
   
   // Add the file attachment to this email message.
   message->Attachments->Add( data );
   
   //Send the message.
   SmtpClient^ client = gcnew SmtpClient( server );
   
   // Add credentials if the SMTP server requires them.
   client->Credentials = CredentialCache::DefaultNetworkCredentials;
   client->Send( message );
   
   // Display the values in the ContentDisposition for the attachment.
   ContentDisposition^ cd = data->ContentDisposition;
   Console::WriteLine( L"Content disposition" );
   Console::WriteLine( cd );
   Console::WriteLine( L"File {0}", cd->FileName );
   Console::WriteLine( L"Size {0}", cd->Size );
   Console::WriteLine( L"Creation {0}", cd->CreationDate );
   Console::WriteLine( L"Modification {0}", cd->ModificationDate );
   Console::WriteLine( L"Read {0}", cd->ReadDate );
   Console::WriteLine( L"Inline {0}", cd->Inline );
   Console::WriteLine( L"Parameters: {0}", cd->Parameters->Count );
   IEnumerator^ myEnum1 = cd->Parameters->GetEnumerator();
   while ( myEnum1->MoveNext() )
   {
      DictionaryEntry^ d = safe_cast<DictionaryEntry^>(myEnum1->Current);
      Console::WriteLine( L"{0} = {1}", d->Key, d->Value );
   }

   data->~Attachment();
   client->~SmtpClient();
}


public static void CreateMessageWithAttachment(string server)
{
    // Specify the file to be attached and sent.
    // This example assumes that a file named Data.xls exists in the
    // current working directory.
    string file = "data.xls";
    // Create a message and set up the recipients.
    MailMessage message = new MailMessage(
        "jane@contoso.com",
        "ben@contoso.com",
        "Quarterly data report.",
        "See the attached spreadsheet.");

    // Create  the file attachment for this email message.
    Attachment data = new Attachment(file, MediaTypeNames.Application.Octet);
    // Add time stamp information for the file.
    ContentDisposition disposition = data.ContentDisposition;
    disposition.CreationDate = System.IO.File.GetCreationTime(file);
    disposition.ModificationDate = System.IO.File.GetLastWriteTime(file);
    disposition.ReadDate = System.IO.File.GetLastAccessTime(file);
    // Add the file attachment to this email message.
    message.Attachments.Add(data);

    //Send the message.
    SmtpClient client = new SmtpClient(server);
    // Add credentials if the SMTP server requires them.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;

    try
    {
        client.Send(message);
    }
    catch (Exception ex)
    {
        Console.WriteLine("Exception caught in CreateMessageWithAttachment(): {0}", 
            ex.ToString());
    }
    // Display the values in the ContentDisposition for the attachment.
    ContentDisposition cd = data.ContentDisposition;
    Console.WriteLine("Content disposition");
    Console.WriteLine(cd.ToString());
    Console.WriteLine("File {0}", cd.FileName);
    Console.WriteLine("Size {0}", cd.Size);
    Console.WriteLine("Creation {0}", cd.CreationDate);
    Console.WriteLine("Modification {0}", cd.ModificationDate);
    Console.WriteLine("Read {0}", cd.ReadDate);
    Console.WriteLine("Inline {0}", cd.Inline);
    Console.WriteLine("Parameters: {0}", cd.Parameters.Count);
    foreach (DictionaryEntry d in cd.Parameters)
    {
        Console.WriteLine("{0} = {1}", d.Key, d.Value);
    }
    data.Dispose();
}

注釈

MailMessage クラスのインスタンスは、SmtpClient クラスを使用して配信するために SMTP サーバーに送信される電子メールメッセージを作成するために使用されます。Instances of the MailMessage class are used to construct email messages that are transmitted to an SMTP server for delivery using the SmtpClient class.

MailMessage を使用して MailMessage オブジェクトを初期化する場合は、電子メールメッセージの送信者、受信者、件名、および本文をパラメーターとして指定できます。The sender, recipient, subject, and body of an email message may be specified as parameters when a MailMessage is used to initialize a MailMessage object. これらのパラメーターは、MailMessage オブジェクトのプロパティを使用して設定またはアクセスすることもできます。These parameters may also be set or accessed using properties on the MailMessage object.

メッセージのプライマリメールメッセージのヘッダーと要素は、MailMessage クラスの次のプロパティを使用して設定できます。The primary mail message headers and elements for the message may be set using the following properties of the MailMessage class.

メールヘッダーまたはパーツMail header or part プロパティProperty
添付ファイルAttachments Attachments
ブラインドカーボンコピー (BCC)Blind carbon copies (BCC) Bcc
カーボンコピー (CC)Carbon copies (CC) CC
コンテンツの種類Content-Type BodyEncoding
カスタムヘッダーのエンコードEncoding for custom headers HeadersEncoding
メッセージ本文Message body Body
優先度Priority Priority
[受信者]Recipient To
[返信先]Reply-To ReplyToList
センダーSender From
SubjectSubject Subject

MailMessage クラスを使用すると、アプリケーションは Headers プロパティを使用して、メッセージのヘッダーコレクションにアクセスすることもできます。The MailMessage class also allows an application to access the headers collection for the message using the Headers property. このコレクションは読み取り専用ですが (新しいコレクションを設定することはできません)、このコレクションにカスタムヘッダーを追加または削除することができます。While this collection is read-only (a new collection can not be set), custom headers can be added to or deleted from this collection. 追加されたカスタムヘッダーは、MailMessage インスタンスの送信時に含められます。Any custom headers added will be included when the MailMessage instance is sent. メッセージが送信される前に、Headers プロパティでこのコレクションに明示的に追加されたヘッダーのみがコレクションに含まれます。Before a message is sent, only headers specifically added to this collection in the Headers property are included in the collection. MailMessage インスタンスが送信された後、Headers プロパティには、MailMessage クラスの関連プロパティを使用して設定されたヘッダー、または MailMessage を使用して MailMessage オブジェクトを初期化するときに渡されるパラメーターも含まれます。After a the MailMessage instance is sent, the Headers property will also include headers that are set using the associated properties of the MailMessage class or parameters passed when a MailMessage is used to initialize a MailMessage object.

一部のメールヘッダーの形式が正しくないと、電子メールメッセージが破損する可能性があります。If some mail headers are malformed, they could cause the email message to become corrupted. そのため、MailMessage クラスのプロパティを使用して設定できるヘッダーコレクション内のメールヘッダーは、MailMessage class プロパティを使用して設定するか、MailMessageMailMessage オブジェクトを初期化するときに渡されるパラメーターとしてのみ設定する必要があります。So any mail header in the headers collection that can be set using a property on the MailMessage class should only be set using the MailMessage class property or as a parameter passed when a MailMessage initializes a MailMessage object. 次のメールヘッダーの一覧は、Headers プロパティを使用して追加することはできません。また、Headers プロパティを使用してこれらのヘッダーに設定された値は、メッセージの送信時に破棄または上書きされます。The following list of mail headers should not be added using the Headers property and any values set for these headers using the Headers property will be discarded or overwritten when the message is sent:

  • [BCC]Bcc

  • CcCc

  • コンテンツ IDContent-ID

  • Content-LocationContent-Location

  • コンテンツ転送-エンコードContent-Transfer-Encoding

  • コンテンツの種類Content-Type

  • DateDate

  • FromFrom

  • 重要度Importance

  • MIME-バージョンMIME-Version

  • 優先度Priority

  • [返信先]Reply-To

  • センダーSender

  • 終了To

  • X-優先順位X-Priority

アプリケーションで、Headers プロパティを使用して、送信元のヘッダーを指定しない場合は、メッセージの送信時に MailMessage クラスによって作成されます。If the application does not specify an X-Sender header using the Headers property, the MailMessage class will create one when the message is sent.

AlternateViews プロパティを使用して、さまざまな形式の電子メールメッセージのコピーを指定します。Use the AlternateViews property to specify copies of an email message in different formats. たとえば、HTML でメッセージを送信する場合、一部の受信者が HTML コンテンツを表示できない電子メールリーダーを使用する場合に備えて、プレーンテキストバージョンを提供することもできます。For example, if you send a message in HTML, you might also want to provide a plain text version in case some of the recipients use email readers that cannot display HTML content. 代替ビューでメッセージを作成する方法の例については、「AlternateViews」を参照してください。For an example that demonstrates creating a message with alternate views, see AlternateViews.

電子メールメッセージに添付ファイルを追加するには、Attachments プロパティを使用します。Use the Attachments property to add attachments to an email message. 添付ファイルを含むメッセージの作成方法の例については、「Attachments」を参照してください。For an example that demonstrates creating a message with an attachment, see Attachments. Send-mailmessage で Dispose を呼び出すと、参照される各添付ファイルに対して Dispose も呼び出されます。Calling Dispose on the MailMessage also calls Dispose on each referenced Attachment.

電子メールメッセージを作成したら、Send または SendAsync メソッドを使用して送信できます。After assembling your email message, you can send it by using the Send or SendAsync methods.

コンストラクター

MailMessage()

MailMessage クラスの空のインスタンスを初期化します。Initializes an empty instance of the MailMessage class.

MailMessage(MailAddress, MailAddress)

MailMessage クラスのオブジェクトを指定して、MailAddress クラスの新しいインスタンスを初期化します。Initializes a new instance of the MailMessage class by using the specified MailAddress class objects.

MailMessage(String, String)

MailMessage クラスのオブジェクトを指定して、String クラスの新しいインスタンスを初期化します。Initializes a new instance of the MailMessage class by using the specified String class objects.

MailMessage(String, String, String, String)

MailMessage クラスの新しいインスタンスを初期化します。Initializes a new instance of the MailMessage class.

プロパティ

AlternateViews

メッセージ本文の別形式の表示内容を格納するために使用する添付データのコレクションを取得します。Gets the attachment collection used to store alternate forms of the message body.

Attachments

この電子メール メッセージに添付されるデータを格納するために使用する添付データのコレクションを取得します。Gets the attachment collection used to store data attached to this email message.

Bcc

この電子メール メッセージの BCC (blind carbon copy) 受信者を格納するアドレスのコレクションを取得します。Gets the address collection that contains the blind carbon copy (BCC) recipients for this email message.

Body

メッセージ本文を取得または設定します。Gets or sets the message body.

BodyEncoding

メッセージ本文をエンコードするために使用されるエンコーディングを取得または設定します。Gets or sets the encoding used to encode the message body.

BodyTransferEncoding

メッセージ本文をエンコードするために使用される転送エンコーディングを取得または設定します。Gets or sets the transfer encoding used to encode the message body.

CC

この電子メール メッセージの CC (carbon copy) 受信者を格納するアドレスのコレクションを取得します。Gets the address collection that contains the carbon copy (CC) recipients for this email message.

DeliveryNotificationOptions

この電子メールの配信通知を取得または設定します。Gets or sets the delivery notifications for this email message.

From

この電子メールの差出人アドレスを取得または設定します。Gets or sets the from address for this email message.

Headers

この電子メール メッセージで送信される電子メール ヘッダーを取得します。Gets the email headers that are transmitted with this email message.

HeadersEncoding

この電子メール メッセージのユーザー定義のカスタム ヘッダーに使用されるエンコーディングを取得または設定します。Gets or sets the encoding used for the user-defined custom headers for this email message.

IsBodyHtml

電子メール メッセージの本文が HTML 形式かどうかを示す値を取得または設定します。Gets or sets a value indicating whether the mail message body is in HTML.

Priority

この電子メールの優先順位を取得または設定します。Gets or sets the priority of this email message.

ReplyTo

電子メール メッセージの ReplyTo アドレスを取得または設定します。Gets or sets the ReplyTo address for the mail message.

ReplyToList

電子メール メッセージの返信先のアドレスの一覧を取得します。Gets the list of addresses to reply to for the mail message.

Sender

この電子メール メッセージの差出人のアドレスを取得または設定します。Gets or sets the sender's address for this email message.

Subject

この電子メールの件名を取得または設定します。Gets or sets the subject line for this email message.

SubjectEncoding

この電子メール メッセージの件名の内容に使用されるエンコーディングを取得または設定します。Gets or sets the encoding used for the subject content for this email message.

To

この電子メール メッセージの受信者を格納するアドレスのコレクションを取得します。Gets the address collection that contains the recipients of this email message.

メソッド

Dispose()

MailMessage によって使用されているすべてのリソースを解放します。Releases all resources used by the MailMessage.

Dispose(Boolean)

MailMessage によって使用されているアンマネージド リソースを解放し、オプションでマネージド リソースも解放します。Releases the unmanaged resources used by the MailMessage and optionally releases the managed resources.

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判定します。Determines whether the specified object is equal to the current object.

(継承元 Object)
GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(継承元 Object)
ToString()

現在のオブジェクトを表す string を返します。Returns a string that represents the current object.

(継承元 Object)

適用対象