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



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

辞書ショートカット

すべての辞書の索引

「SmtpClient クラス」の関連用語

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

   

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



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

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

©2025 GRAS Group, Inc.RSS