小编Kar*_*ťan的帖子

Mailkit.Net 挂在 smtpClient.ConnectAsync() 上,在任务超时之前不会引发异常

最近,我在我们的一个旧应用程序中遇到了问题。突然,应用程序停止向其用户发送注册/重置密码电子邮件。经过一些调试,我发现原因是 Mailkit SmtpClient 类的奇怪行为。问题出现在以下代码中:

public async Task Execute(EmailMessage email)
{
    var mimeMessage = CreateMimeMessageFromEmailMessage(email);

    using var smtpClient = new SmtpClient();

    await smtpClient.ConnectAsync(Options.SmtpServer, Options.Port, MailKit.Security.SecureSocketOptions.None);
    await smtpClient.AuthenticateAsync(Options.Username, Options.Password);
    await smtpClient.SendAsync(mimeMessage);
    await smtpClient.DisconnectAsync(true);
}
Run Code Online (Sandbox Code Playgroud)

每次在 ConnectAsync() 方法中都会发生错误,但是,它不会抛出任何异常,只是在该方法中冻结一段时间(大约一分钟),然后它只是抛出任务已取消,没有任何 mailkit 特定的信息。

起初,我认为服务器地址、端口或安全选项可能是错误的,但我们在其他一些应用程序中使用相同的设置(和相同的代码!),并且它们似乎工作正常。它也不应该是由我的电脑/网络配置中的某些内容引起的,因为其他开发人员在处理此程序时也会遇到相同的错误。我还尝试对不同的电子邮件使用选项,但错误仍然存​​在。

知道如何找到此错误的原因,如何在没有抛出异常时调试问题等吗?

c# mailkit .net-core asp.net-core

1
推荐指数
1
解决办法
2748
查看次数

标签 统计

.net-core ×1

asp.net-core ×1

c# ×1

mailkit ×1