如何在 C# 中发送带有等待时间的电子邮件?

How can I send emails with waiting time in C#?

我想像这样发送电子邮件并等待:

你从一个.txt文件中获取所有收件人列表并设置了一个时间(例如:50秒和20人)它需要向20个人发送电子邮件并等待50秒然后继续发送邮件来自该列表。

我认为它需要在此代码之前:

SmtpServer.Send(message);

喜欢稍等一下再继续发邮件...

我不知道标准 System.Net.Mail 库可能没有这样的功能。也许我们可以使用 EASendMail 库,但我没有任何关于使用它的信息。

再举一个例子: 想象一下,我是一家需要向员工发送 1000 封邮件的公司。如果我直接发送,我的 IP 将被列为红色,我的邮件将转到 "SPAMBOX",我的员工将看不到我的重要邮件。我需要这样发送:发送 10 workers 然后等待 1 分钟 之后继续发送 10 工作人员并等待 1 分钟...它需要这样进行。但是我找不到办法做到这一点。

你能帮帮我吗?

经过一番研究,我终于找到了这段代码。基本上我有两个变量(peopleToWait 和 secondsToWait)和接收者列表(我正在循环)。我创建了一个用于发送电子邮件的小型 SendMail 方法。这是代码:

  static void Main(string[] args)
    {

        var receivers = new List<List<string>>();

        var group1 = new List<string>();
        group1.Add("Email1");
        group1.Add("Email2");
        group1.Add("Email3");

        receivers.Add(group1);
        var group2 = new List<string>();

        group2.Add("Email4");
        group2.Add("Email5");
        group2.Add("Email6");

        receivers.Add(group2);

        var group3 = new List<string>();
        group3.Add("Email7");
        group3.Add("Email8");
        group3.Add("Email9");
        receivers.Add(group3);

        var group4 = new List<string>();
        group4.Add("Email10");
        group4.Add("Email11");
        group4.Add("Email12");
        receivers.Add(group4);

        var secondsToWait = 3;

        foreach (var receiver in receivers)
        {
            ParameterizedThreadStart pts = new ParameterizedThreadStart(SendMail);
            Thread th = new Thread(pts);
            th.Start(receiver);

            Thread.Sleep(secondsToWait * 1000);
        }


        Console.ReadLine();
    }

    static void SendMail(object Email)
    {

        var group = (List<string>)Email;

        //MailMessage abcd = new MailMessage();
        //abcd.To.Add(String.Join(",", group));
        Console.WriteLine("Sending Mail to " + String.Join(",", group));
    }