2016-05-13 27 views
3

私はC#のSmtpClient.SendMailAsyncでメールを送信していますが、私は非常に奇妙な動作をしています。SendMailAsync返信されず、依然としてメールを送信する

SendMailAsyncに電話すると、メールが送信されます。毎回受信します。しかし、私のアプリケーションは決して戻ってこない。それはawaitにぶら下がっているように見えますが、なぜ戻ってこないのかについての真の洞察はありません。 Sendに切り替えると、すぐにメールが送信され、もちろん、すべてのことが期待どおりに完了します。

実際にメールを送信するためのソースです。

public async Task SendEmailAsync(string toAddress, string subject, string message) 
{ 
    using (var client = new SmtpClient(configuration["Email:Host"], Convert.ToInt32(configuration["Email:Port"]))) 
    using (var mailMessage = new MailMessage(configuration["Email:FromAddress"], toAddress, subject, message)) 
    { 
     client.Credentials = new NetworkCredential(configuration["Email:Username"], configuration["Email:Password"]); 
     client.EnableSsl = true; 

     mailMessage.IsBodyHtml = true; 

     try 
     { 
      await client.SendMailAsync(mailMessage); 
     } 
     catch (SmtpException) 
     { 
      throw; 
     } 
    } 
} 

これらのメールをAWS SES経由で送信していることがあります。どの住所に送っても、同じ問題が発生します。私のチェーンは、呼び出しスタックのすべての方法でAsyncです。私はOSX、ASP.NET Core 1上で動作しています。

+0

外部の 'SendEmailAsync'メソッドはどこにありますか? –

+0

@FedericoDipuma 'SendEmailAsync'の呼び出し側メソッドを意味するならば、' async Task CreateAndAssign(...) 'と呼ばれる非同期MVCコントローラアクションです。 – JasCav

+0

あなたは、OSX上でアプリケーションを実行していると述べましたが、問題を特定し、Windowsマシンでもその問題が発生しているかどうかを確認できますか? –

答えて

0

これはバグです - おそらくKestrel on OSXについては、コメントの中でFederico Dipumaとのディスカッションごとです。回避策は、メールを非同期で送信しないことです。

これ以上の情報が明らかにされない限り、答えとしてマークしてください。

+0

こんにちは、このスレッドを復活させていただきありがとうございます。しかし、私も同じ問題を抱えています。私のプログラムを実行していたときにlocalhostが動作していましたが、私のウェブサイトをホストしているときにメールは送信されていますが、SendMailAsyncは返されません。私はこの種のものでちょうど新しいです。私があなたを助けてくれることを願っています。先生、ありがとうございました。私のコントローラは次のとおりです:http://pastie.org/10907763 –

関連する問題