gpt4 book ai didi

c# - 发送大量邮件时 SmtpClient.SendMailAsync 方法挂起

转载 作者:行者123 更新时间:2023-11-30 12:19:55 25 4
gpt4 key购买 nike

我正在尝试使用 SmtpClient.SendMailAsync 方法发送大量电子邮件。这是我从简单控制台应用程序调用的测试方法。

    static void Main(string[] args)
{

SendMailsOnebyOneAsync().GetAwaiter().GetResult();

}


public static async Task SendMailsOnebyOneAsync()
{
for (int i = 0; i < 1000; i++)
{
try
{
using (SmtpClient sMail = new SmtpClient("XXX"))
{
sMail.DeliveryMethod = SmtpDeliveryMethod.Network;
sMail.UseDefaultCredentials = false;
sMail.Credentials = null;

var fromMailAddress = new MailAddress("XXX");
var toMailAddress = new MailAddress("XXX");

MailMessage message = new MailMessage(fromMailAddress, toMailAddress)
{
Subject = "test"
};

await sMail.SendMailAsync(message);

Console.WriteLine("Sent {0}", i);
}
}
catch (Exception e)
{
Console.WriteLine(e.Message);
}
}
}

有时该方法会挂起 - 它等待 SendMailAsync 似乎卡住了并​​且没有返回。

我看到一个相关问题 SmtpClient SendMailAsync sometimes never returns .但是没有建议的修复对我有用。

当我尝试使用同步方法 SmtpClient.Send 时一切正常,应用程序永远不会挂起。

有人知道哪里出了问题吗?

最佳答案

我的同事向我指出 SmtpClient 实际上已经过时,Microsoft 建议不要使用它。

请参阅以下内容 link .

     ************ Update ***********

我已尝试按照链接中的建议使用 MailKit。对于非异步异步 发送,相同的场景与MailKit 完美配合。

   **********************************

关于c# - 发送大量邮件时 SmtpClient.SendMailAsync 方法挂起,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54581992/

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