SMTPを使用してループ内で電子メールを送信するにはどうすればよいですか?

ThunD3eR

スレッド内でメールを送信するコンソールアプリがあります。

このスレッドメソッドでは、各受信者に電子メールを送信するループがあります。

以前のメールが送信される前に複数のメールを送信しようとすると、問題が発生します。

私のコード:

            foreach(var m in mailModel.Recipients)
            {
                Mailmanager.SendMessageS(mailModel.DomainName, mailModel.Severity, DateTime.Now, m);
            }

そしてsendメソッド:

public static async Task SendMessageS(string domainName, ErrorSeverity severity, DateTime errorTime, Recipient recipient)
{

    try
    {
        string error = "";

        string fromEmail = "[email protected]";
        string toEmail = recipient.SendEmailTo;

        MailMessage message = new MailMessage(fromEmail, toEmail);
        Guid guid = Guid.NewGuid();
        SmtpClient smtpClient = new SmtpClient(server, port);

        /*if (_useAuthentication)*/
        smtpClient.Credentials = new NetworkCredential("", "");
        smtpClient.EnableSsl = false;

        //mail.Subject = subject;
        //mail.Body = body;

        message.Subject = "Problem ( " + severity + ") " + domainName;
        message.Body = BuildMessage(error, recipient.RecipientName, domainName, errorTime, severity);

        smtpClient.SendCompleted += SendCompletedCallback;

        await smtpClient.SendMailAsync(fromEmail, toEmail, message.Subject, message.Body  /* user state, can be any object*/);

    }
    catch (Exception ex)
    {
        Console.WriteLine(ex.Message);
    }
}

私はこの警告を受けています:

この呼び出しは待機されていないため、現在のメソッドの実行は呼び出しが完了する前に続行されます。呼び出しの結果にawaitopeartorを適用することを検討してください

警告は理解できますが、すべての受信者を通過するループがあるため、これをどのように達成できるかわかりません。

どうすればこれを正しく行うことができますか?

Yahya

ユーティリティメソッドが非同期操作を実行しているため、これは簡単な修正です(awaitへの呼び出しにキーワードを追加Mailmanager.SendMessageS)。

foreach(var m in mailModel.Recipients)
{
    await Mailmanager.SendMessageS(mailModel.DomainName, mailModel.Severity, DateTime.Now, m);
}

全体的なプロセスとしてそれを行うためのより良い方法があるかもしれません。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

MFMailComposeViewContollerを使用してPDFを電子メールで送信するにはどうすればよいですか?

分類Dev

NLogを使用して電子メールを送信するにはどうすればよいですか?

分類Dev

SMTPを使用してionic3で電子メールを送信するにはどうすればよいですか?

分類Dev

Outlookの相互運用機能を使用して送信者のSMTP電子メールアドレスを取得するにはどうすればよいですか?

分類Dev

電子メール クライアントを使用して電子メールを送信するにはどうすればよいですか。

分類Dev

SMTPを使用してGrails3でメールを送信するにはどうすればよいですか?

分類Dev

SMTPを使用してGrails3でメールを送信するにはどうすればよいですか?

分類Dev

Swiftを使用してiOSアプリ経由で電子メールを送信するにはどうすればよいですか?

分類Dev

OPENSSLを使用して電子メールメッセージに署名し、CURLを使用して送信するにはどうすればよいですか?

分類Dev

mailgun、taskqueue、ndbを使用して重複する電子メールを送信しないようにするにはどうすればよいですか?

分類Dev

電子メールを送信した後にSMTPヘッダーをフェッチするにはどうすればよいですか?

分類Dev

電子メールを送信した後にSMTPヘッダーをフェッチするにはどうすればよいですか?

分類Dev

deviseを使用して電子メールのみを更新するにはどうすればよいですか?

分類Dev

Classic ASPでExchangeサーバーを使用して電子メールを送信するにはどうすればよいですか?

分類Dev

crontabを使用して電子メールを送信するときに件名を変更するにはどうすればよいですか?

分類Dev

crontabを使用して電子メールを送信するときに件名を変更するにはどうすればよいですか?

分類Dev

crontabを使用して電子メールを送信するときに件名を変更するにはどうすればよいですか?

分類Dev

summernoteとlaravelを使用してhtml電子メールを送信するときにhtmlentitesを停止するにはどうすればよいですか?

分類Dev

VBAを使用して、選択したExcelセルをHTML形式の電子メール本文に送信するにはどうすればよいですか?

分類Dev

SendGrid API v3を介してテンプレート化された電子メールを送信するにはどうすればよいですか?

分類Dev

PHPを使用してPDF添付ファイル付きの電子メールを送信するにはどうすればよいですか?

分類Dev

コンソール出力を電子メールに送信するにはどうすればよいですか?

分類Dev

SES固有の一時的な資格情報を使用してSES経由で電子メールを送信するにはどうすればよいですか?

分類Dev

Microsoft Enterpriseライブラリを使用してasp.netで電子メールを送信するにはどうすればよいですか?

分類Dev

C#を使用してstringbuilderクラスの出力を電子メールで送信するにはどうすればよいですか?

分類Dev

UIActivityItemProviderを使用して、UIActivityViewControllerが添付された電子メールを送信するにはどうすればよいですか?

分類Dev

VB.NETを使用して送信された電子メール出力の「=」記号を削除するにはどうすればよいですか?

分類Dev

SwiftMailerを使用して画像を電子メール本文に送信するにはどうすればよいですか?

分類Dev

SendGridAPIClienteを使用して電子メールを送信するにはどうすればよいですか。AzureWebサイト

Related 関連記事

  1. 1

    MFMailComposeViewContollerを使用してPDFを電子メールで送信するにはどうすればよいですか?

  2. 2

    NLogを使用して電子メールを送信するにはどうすればよいですか?

  3. 3

    SMTPを使用してionic3で電子メールを送信するにはどうすればよいですか?

  4. 4

    Outlookの相互運用機能を使用して送信者のSMTP電子メールアドレスを取得するにはどうすればよいですか?

  5. 5

    電子メール クライアントを使用して電子メールを送信するにはどうすればよいですか。

  6. 6

    SMTPを使用してGrails3でメールを送信するにはどうすればよいですか?

  7. 7

    SMTPを使用してGrails3でメールを送信するにはどうすればよいですか?

  8. 8

    Swiftを使用してiOSアプリ経由で電子メールを送信するにはどうすればよいですか?

  9. 9

    OPENSSLを使用して電子メールメッセージに署名し、CURLを使用して送信するにはどうすればよいですか?

  10. 10

    mailgun、taskqueue、ndbを使用して重複する電子メールを送信しないようにするにはどうすればよいですか?

  11. 11

    電子メールを送信した後にSMTPヘッダーをフェッチするにはどうすればよいですか?

  12. 12

    電子メールを送信した後にSMTPヘッダーをフェッチするにはどうすればよいですか?

  13. 13

    deviseを使用して電子メールのみを更新するにはどうすればよいですか?

  14. 14

    Classic ASPでExchangeサーバーを使用して電子メールを送信するにはどうすればよいですか?

  15. 15

    crontabを使用して電子メールを送信するときに件名を変更するにはどうすればよいですか?

  16. 16

    crontabを使用して電子メールを送信するときに件名を変更するにはどうすればよいですか?

  17. 17

    crontabを使用して電子メールを送信するときに件名を変更するにはどうすればよいですか?

  18. 18

    summernoteとlaravelを使用してhtml電子メールを送信するときにhtmlentitesを停止するにはどうすればよいですか?

  19. 19

    VBAを使用して、選択したExcelセルをHTML形式の電子メール本文に送信するにはどうすればよいですか?

  20. 20

    SendGrid API v3を介してテンプレート化された電子メールを送信するにはどうすればよいですか?

  21. 21

    PHPを使用してPDF添付ファイル付きの電子メールを送信するにはどうすればよいですか?

  22. 22

    コンソール出力を電子メールに送信するにはどうすればよいですか?

  23. 23

    SES固有の一時的な資格情報を使用してSES経由で電子メールを送信するにはどうすればよいですか?

  24. 24

    Microsoft Enterpriseライブラリを使用してasp.netで電子メールを送信するにはどうすればよいですか?

  25. 25

    C#を使用してstringbuilderクラスの出力を電子メールで送信するにはどうすればよいですか?

  26. 26

    UIActivityItemProviderを使用して、UIActivityViewControllerが添付された電子メールを送信するにはどうすればよいですか?

  27. 27

    VB.NETを使用して送信された電子メール出力の「=」記号を削除するにはどうすればよいですか?

  28. 28

    SwiftMailerを使用して画像を電子メール本文に送信するにはどうすればよいですか?

  29. 29

    SendGridAPIClienteを使用して電子メールを送信するにはどうすればよいですか。AzureWebサイト

ホットタグ

アーカイブ