如何在 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));
}
我想像这样发送电子邮件并等待:
你从一个.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));
}