c# - 如何在 C# 中发送带有等待时间的电子邮件?
问题描述
我想发送等待这样的电子邮件:
您从 .txt 文件中获取所有收件人列表并设置时间(例如:50 秒和 20 人)它需要向 20 人发送电子邮件并等待 50 秒然后继续从该列表发送邮件。
我认为它需要在此代码之前:
SmtpServer.Send(message);
比如稍等片刻,然后继续发送电子邮件...
我不知道标准System.Net.Mail
库可能没有这样的功能。也许我们可以使用EASendMail库,但我没有任何关于使用它的信息。
再举一个例子: 假设我是一家需要向员工发送1000封邮件的公司。如果我直接发送,我的 IP 将被列为红色,我的邮件会转到“SPAMBOX”,我的工作人员看不到我的重要邮件。我需要像这样发送他们:发送10名工人然后等待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));
}
推荐阅读
- c# - 我对 ASPNetCore 2 Web Api 的 json 请求的自定义序列化器/转换器
- python - 使用 Kivy Touchinput 和 Kivyfile
- javascript - 尝试使用索引字段进行排序时不存在索引(芒果查询)
- javascript - 使用云代码在 Parse Server 上一次更新和保存数千个对象。代码不适用于超过 2 个对象。(Parse.Object.saveAll())
- python - 类型错误:“int”对象没有属性。python int(raw_input())
- c# - 在 C# 中访问 FTP 托管的 Web API
- php - 使用正则表达式将所有 URL 中的空格替换为 %20
- printing - 在 xpages 中打印票证
- html - 不在 HTML 源代码中的页面上出现换行符
- console - 如何使用 ANGULAR6 从控制台的本地存储中获取访问令牌?