私は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上で動作しています。
外部の 'SendEmailAsync'メソッドはどこにありますか? –
@FedericoDipuma 'SendEmailAsync'の呼び出し側メソッドを意味するならば、' async Task CreateAndAssign(...) 'と呼ばれる非同期MVCコントローラアクションです。 –
JasCav
あなたは、OSX上でアプリケーションを実行していると述べましたが、問題を特定し、Windowsマシンでもその問題が発生しているかどうかを確認できますか? –