SmtpClientとは? わかりやすく解説

SmtpClient イベント


パブリック イベントパブリック イベント

参照参照

関連項目

SmtpClient クラス
System.Net.Mail 名前空間
System.Net.Mime

SmtpClient クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

アプリケーションが SMTP (Simple Mail Transfer Protocol) を使用して電子メールを送信できるようにします。

名前空間: System.Net.Mail
アセンブリ: System (system.dll 内)
構文構文

public class SmtpClient
public ref class SmtpClient
public class SmtpClient
public class SmtpClient
解説解説

SmtpClient クラスは、配信用 SMTP サーバーに電子メールを送信するために使用されます。次の表に示すクラスは、SmtpClient を使用して送信できる電子メール メッセージを作成するために使用されます。

SmtpClient を使用して電子メール メッセージを作成し、送付するには、次の情報を指定する必要があります。

添付データを電子メール メッセージに含めるには、まず Attachment クラスを使用して添付データを作成し、次に MailMessage.Attachments プロパティを使用してそのデータをメッセージに追加します。受信者が使用している電子メール プログラムや添付するファイルの種類によっては、一部の受信者が添付データを読むことができない可能性があります。元の形式で添付データを表示できないユーザーのために、MailMessage.AlternateViews プロパティを使用して別の表示形式を指定できます。

アプリケーションまたはコンピュータの構成ファイルを使用して、すべての SmtpClient オブジェクトに対して既定のホスト、ポート、および資格情報の値を指定できます。詳細については、「mailSettings 要素 (ネットワーク設定)」を参照してください。

電子メール メッセージを送信し、SMTP サーバーへの送信の待機中に処理をブロックするには、いずれかの同期 Send メソッドを使用します。プログラムのメイン スレッドが、電子メールの送信中も実行を継続できるようにするには、いずれかの非同期 SendAsync メソッドを使用します。SendAsync 操作が完了すると、SendCompleted イベントが発生します。このイベントを受信するには、SendCompletedEventHandler デリゲートを SendCompleted に追加する必要があります。SendCompletedEventHandler デリゲートは、SendCompleted イベントの通知を処理するコールバック メソッドを参照する必要があります。電子メールの非同期的な伝送をキャンセルするには、SendAsyncCancel メソッドを使用します。

メモメモ

電子メールを伝送中に SendAsync または Send を再度呼び出すと、InvalidOperationException が通知されます。

SMTP は、RFC 2821 (http://www.ietf.org を参照) で定義されています。

使用例使用例

電子メール メッセージを非同期的に送信するコード例を次に示します。

using System;
using System.Net;
using System.Net.Mail;
using System.Net.Mime;
using System.Threading;
using System.ComponentModel;
namespace Examples.SmptExamples.Async
{
    public class SimpleAsynchronousExample
    {
        static bool mailSent = false;
        public static void
 SendCompletedCallback(object sender, AsyncCompletedEventArgs e)
        {
            // Get the unique identifier for this asynchronous operation.
             String token = (string) e.UserState;
           
            if (e.Cancelled)
            {
                 Console.WriteLine("[{0}] Send canceled.", token);
            }
            if (e.Error != null)
            {
                 Console.WriteLine("[{0}] {1}", token, e.Error.ToString());
            } else
            {
                Console.WriteLine("Message sent.");
            }
            mailSent = true;
        }
        public static void
 Main(string[] args)
        {
            // Command line argument must the the SMTP host.
            SmtpClient client = new SmtpClient(args[0]);
            // Specify the e-mail sender.
            // Create a mailing address that includes a UTF8 character
            // in the display name.
            MailAddress from = new MailAddress("jane@contoso.com",
 
               "Jane " + (char)0xD8+ " Clayton",
 
            System.Text.Encoding.UTF8);
            // Set destinations for the e-mail message.
            MailAddress to = new MailAddress("ben@contoso.com");
            // Specify the message content.
            MailMessage message = new MailMessage(from, to);
            message.Body = "This is a test e-mail message sent by an application.
 ";
            // Include some non-ASCII characters in body and subject.
            string someArrows = new string(new
 char[] {'\u2190', '\u2191', '\u2192', '\u2193'});
            message.Body += Environment.NewLine + someArrows;
            message.BodyEncoding =  System.Text.Encoding.UTF8;
            message.Subject = "test message 1" + someArrows;
            message.SubjectEncoding = System.Text.Encoding.UTF8;
            // Set the method that is called back when the send operation
 ends.
            client.SendCompleted += new 
            SendCompletedEventHandler(SendCompletedCallback);
            // The userState can be any object that allows your callback
 
            // method to identify this send operation.
            // For this example, the userToken is a string constant.
            string userState = "test message1";
            client.SendAsync(message, userState);
            Console.WriteLine("Sending message... press c to cancel mail. Press
 any other key to exit.");
            string answer = Console.ReadLine();
            // If the user canceled the send, and mail hasn't been sent
 yet,
            // then cancel the pending operation.
            if (answer.StartsWith("c") && mailSent
 == false)
            {
                client.SendAsyncCancel();
            }
            // Clean up.
            message.Dispose();
            Console.WriteLine("Goodbye.");
        }
    }
}
#using <System.dll>
using namespace System;
using namespace System::Net;
using namespace System::Net::Mail;
using namespace System::Net::Mime;
using namespace System::Threading;
using namespace System::ComponentModel;

static bool mailSent;

static void SendCompletedCallback(Object^ sender,
 AsyncCompletedEventArgs^ e)
{
    // Get the unique identifier for this asynchronous 
    // operation.
    String^ token = (String^) e->UserState;

    if (e->Cancelled)
    {
        Console::WriteLine("[{0}] Send canceled.", token);
    }
    if (e->Error != nullptr)
    {
        Console::WriteLine("[{0}] {1}", token, 
            e->Error->ToString());
    } else
    {
        Console::WriteLine("Message sent.");
    }
    mailSent = true;
}

int main(array<String^>^ args)
{
    if (args->Length > 1)
    {
        // Command line argument must the the SMTP host.
        SmtpClient^ client = gcnew SmtpClient(args[1]);
        // Specify the e-mail sender.
        // Create a mailing address that includes a UTF8 
        // character in the display name.
        MailAddress^ from = gcnew MailAddress("jane@contoso.com",
            "Jane " + (wchar_t)0xD8 + " Clayton",
            System::Text::Encoding::UTF8);
        // Set destinations for the e-mail message.
        MailAddress^ to = gcnew MailAddress("ben@contoso.com");
        // Specify the message content.
        MailMessage^ message = gcnew MailMessage(from, to);
        message->Body = "This is a test e-mail message sent" +
            " by an application. ";
        // Include some non-ASCII characters in body and 
        // subject.
        String^ someArrows = gcnew String(gcnew array<wchar_t>{L'\u2190', 
            L'\u2191', L'\u2192', L'\u2193'});
        message->Body += Environment::NewLine + someArrows;
        message->BodyEncoding = System::Text::Encoding::UTF8;
        message->Subject = "test message 1" + someArrows;
        message->SubjectEncoding = System::Text::Encoding::UTF8;
        // Set the method that is called back when the send
        // operation ends.
        client->SendCompleted += gcnew
            SendCompletedEventHandler(SendCompletedCallback);
        // The userState can be any object that allows your 
        // callback method to identify this send operation.
        // For this example, the userToken is a string constant.
        String^ userState = "test message1";
        client->SendAsync(message, userState);
        Console::WriteLine("Sending message... press c to" +
            " cancel mail. Press any other key to exit.");
        String^ answer = Console::ReadLine();
        // If the user canceled the send, and mail hasn't been 
        // sent yet,then cancel the pending operation.
        if (answer->ToLower()->StartsWith("c")
 && mailSent == false)
        {
            client->SendAsyncCancel();
        }
        // Clean up.
        delete message;
        client = nullptr;
        Console::WriteLine("Goodbye.");
    }
    else
    {
        Console::WriteLine("Please give SMTP server name!");
    }
}
継承階層継承階層
System.Object
  System.Net.Mail.SmtpClient
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SmtpClient メンバ
System.Net.Mail 名前空間
System.Net.Mime

SmtpClient コンストラクタ ()

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

構成ファイルの設定を使用して SmtpClient クラスの新しいインスタンスを初期化します。

名前空間: System.Net.Mail
アセンブリ: System (system.dll 内)
構文構文

public SmtpClient ()
public:
SmtpClient ()
public SmtpClient ()
解説解説
使用例使用例

電子メール メッセージを送信するコード例を次に示します。

public static void CreateTestMessage3()
{
    MailAddress to = new MailAddress("jane@contoso.com");
    MailAddress from = new MailAddress("ben@contoso.com");
    MailMessage message = new MailMessage(from, to);
    message.Subject = "Using the new SMTP client.";
    message.Body = @"Using this new feature,
 you can send an e-mail message from an application very easily.";
    // Use the application or machine configuration to get the 
    // host, port, and credentials.
    SmtpClient client = new SmtpClient();
    Console.WriteLine("Sending an e-mail message to {0} at {1} by using
 the SMTP host {2}.",
        to.User, to.Host, client.Host);
    client.Send(message);
}

アプリケーションまたはコンピュータの構成ファイルの <mailSettings> ノードの例については、「mailSettings 要素 (ネットワーク設定)」を参照してください。

.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SmtpClient クラス
SmtpClient メンバ
System.Net.Mail 名前空間

SmtpClient コンストラクタ (String, Int32)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

指定した SMTP サーバーとポートを使用して電子メールを送信する SmtpClient クラスのインスタンスを初期化します。

名前空間: System.Net.Mail
アセンブリ: System (system.dll 内)
構文構文

例外例外
例外の種類条件

ArgumentOutOfRangeException

port は 0 未満には設定できません。

解説解説
使用例使用例

このコンストラクタを呼び出すコード例を次に示します。

public static void CreateTestMessage1(string
 server, int port)
{
    string to = "jane@contoso.com";
    string from = "ben@contoso.com";
    string subject = "Using the new SMTP
 client.";
    string body = @"Using this new
 feature, you can send an e-mail message from an application very easily.";
    MailMessage message = new MailMessage(from, to, subject, body);
    SmtpClient client = new SmtpClient(server, port);
    // Credentials are necessary if the server requires the client 
    // to authenticate before it will send e-mail on the client's behalf.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;

    client.Send(message);
}
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SmtpClient クラス
SmtpClient メンバ
System.Net.Mail 名前空間

SmtpClient コンストラクタ (String)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

指定した SMTP サーバーを使用して電子メールを送信する SmtpClient クラスの新しいインスタンスを初期化します。

名前空間: System.Net.Mail
アセンブリ: System (system.dll 内)
構文構文

解説解説
使用例使用例

このコンストラクタを呼び出すコード例を次に示します。

public static void CreateTimeoutTestMessage(string
 server)
{
    string to = "jane@contoso.com";
    string from = "ben@contoso.com";
    string subject = "Using the new SMTP
 client.";
    string body = @"Using this new
 feature, you can send an e-mail message from an application very easily.";
    MailMessage message = new MailMessage(from, to, subject, body);
    SmtpClient client = new SmtpClient(server);
    Console.WriteLine("Changing time out from {0} to 100.", client.Timeout);
    client.Timeout = 100;
    // Credentials are necessary if the server requires the client 
    // to authenticate before it will send e-mail on the client's behalf.
    client.Credentials = CredentialCache.DefaultNetworkCredentials;
    client.Send(message);
}
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
SmtpClient クラス
SmtpClient メンバ
System.Net.Mail 名前空間

SmtpClient コンストラクタ


SmtpClient プロパティ


SmtpClient メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
参照参照

関連項目

SmtpClient クラス
System.Net.Mail 名前空間
System.Net.Mime

SmtpClient メンバ

アプリケーションが SMTP (Simple Mail Transfer Protocol) を使用して電子メールを送信できるようにします。

SmtpClient データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
パブリック プロパティパブリック プロパティ
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
参照参照

関連項目

SmtpClient クラス
System.Net.Mail 名前空間
System.Net.Mime



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「SmtpClient」の関連用語

SmtpClientのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



SmtpClientのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS