【问题标题】:How can I send emails with waiting time in C#?如何在 C# 中发送带有等待时间的电子邮件?
【发布时间】:2019-06-14 17:43:58
【问题描述】:

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

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

我认为它需要在此之前:

SmtpServer.Send(message);

喜欢稍等片刻,然后继续发送电子邮件...

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

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

你能帮帮我吗?

【问题讨论】:

  • 您需要一个服务或后台运行的应用程序来满足这种需求。只有详细的问题才能获得详细的答案;-)
  • Thread.Sleep?
  • 使用mailchimp等邮件服务
  • 为什么要等待 50 秒?为什么不把它们都寄出去?

标签: c# email html-email easendmail


【解决方案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));
    }

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2011-11-10
  • 2020-03-03
  • 1970-01-01
  • 2013-04-01
  • 2012-06-20
  • 2022-09-27
  • 2013-08-24
  • 1970-01-01
相关资源
最近更新 更多