gpt4 book ai didi

c# - SmtpClient.SendAsync 代码审查

转载 作者:行者123 更新时间:2023-11-30 22:46:23 25 4
gpt4 key购买 nike

在使用 SendAsync 时处理 SmtpClientMailMessage 的正确方法是什么?

我已经在下面复制了我的代码。

{
...
var client = new SmtpClient {Host = _smtpServer};
client.SendCompleted += SendCompletedCallback;
var userState = mailMessage;
client.SendAsync(mailMessage, userState);
...
}

private static void SendCompletedCallback(object sender,
AsyncCompletedEventArgs e)
{
// Get the unique identifier for this asynchronous operation.
var mailMessage= (MailMessage)e.UserState;

if (e.Cancelled)
{
Log.Info(String.Format("[{0}] Send canceled.", mailMessage));
}
if (e.Error != null)
{
Log.Error(String.Format("[{0}] {1}", mailMessage, e.Error));
}
else
{
Log.Info("Message sent.");
}
mailMessage.Dispose();
}

client.SendAsync(...) 之后处理 MailMessage 会引发异常。我需要在回调处理程序中处理它。

最佳答案

我认为这会有所帮助

   client.SendCompleted += (s, e) => { client.Dispose(); message.Dispose(); };

关于c# - SmtpClient.SendAsync 代码审查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2667336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com