ASP.NET将邮件发送给多个用户

时间:2014-07-17 14:37:09

标签: c# asp.net email

您好我从asp.net网站发送sendig邮件有问题。这是我的代码

        private void mailgonder(string mail, string adsoyad)
    {
        MailMessage mm = new MailMessage();
        mm.From = new MailAddress("my mail address", "my name");

        mm.Subject = "YENİ DUYURU";
        mm.Body = "Sistemde okumadığınız yeni bir duyuru bulunmaktadır.";

        mm.To.Add(new MailAddress(mail, adsoyad));
        SmtpClient sc = new SmtpClient("my smtp client");
        sc.Port = 587;
        sc.Credentials = new NetworkCredential("my username", "my password");
        sc.Send(mm);
    }

我想在同一时间向1500位用户发送邮件。我如何在asp.net中完成此任务(我们将在此Web项目中拥有超过1000名成员)

我可以这样发送给一个人。但我不知道如何将其发送给多人

由于

3 个答案:

答案 0 :(得分:2)

由于MailMessage.To是一个集合,您可以根据需要添加:

 mm.To.Add(new MailAddress("user@user.com", "user1"));
 mm.To.Add(new MailAddress("user1@user.com", "user2"));
 mm.To.Add(new MailAddress("user2@user.com", "user3"));
 mm.To.Add(new MailAddress("user3@user.com", "user4"));

.....

直到

 mm.To.Add(new MailAddress("user1499@user.com", "user1499"));
 mm.To.Add(new MailAddress("user1500@user.com", "user1500"));

注意: 根据您的邮件服务器或访问提供商,可能存在限制。为了提高效率,请使用mailing list

答案 1 :(得分:0)

我相信到目前为止最简单的方法是建立一个联络小组。这样做可以将写入的代码量保持在最低限度。以下是解释如何在Outlook How to make a contact group

中执行此操作的链接

设置好联系人群组后,只需执行以下操作:

  String Devemail = "devgroup@whatever.com";
  MailMessage message = new MailMessage();
  message.To.Add(Devemail);
  //The rest of your code here

其余代码将正常运行。 如果某人有更好/更简单的方法,请随时纠正我。

编辑:我很震惊,我们建议他在他的代码中硬编码1500个电子邮件地址。有人能给我一个很好的理由使用这种方法而不是使用电子邮件组吗?

答案 2 :(得分:0)

您必须向每个用户发送单独的电子邮件。除非你有发件人得分认证,否则不要,永远不要向TO添加超过1个地址,相反的做法会导致你被禁止邮件提供商,因为他们认为你是垃圾邮件发送者。垃圾邮件列表也是全球性的,这意味着如果你被gmail禁止,你也会在短时间内被禁止使用hotmail或yahoo。

每次只从数据库中选择20个电子邮件地址,然后循环播放20个电子邮件地址,并为每个电子邮件地址调用。

除了我上面写的内容之外,如果你写了多个TO,那么你的每个用户都会看到每个用户通过电子邮件发送地址,这从用户的角度来看并不酷。