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

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


このページでは「.NET Framework クラス ライブラリ リファレンス」からSmtpClient クラスを検索した結果を表示しています。
Weblioに収録されているすべての辞書からSmtpClient クラスを検索する場合は、下記のリンクをクリックしてください。
 全ての辞書からSmtpClient クラス を検索

英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「SmtpClient クラス」の関連用語

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

   

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



SmtpClient クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

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

©2025 GRAS Group, Inc.RSS