ASP.NET向多个用户发送邮件

本文关键字:用户 NET ASP | 更新日期: 2023-09-27 18:13:18

你好,我有一个问题,从asp.net网站发送邮件。这是我的代码

        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(我们将有超过1000个成员在这个web项目)

我可以像这样寄给一个人。但是我不知道怎样才能把这个发给多人

谢谢

ASP.NET向多个用户发送邮件

由于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"));

注意:根据您的邮件服务器或访问提供程序,可能存在限制。为了提高效率,可以使用邮件列表。

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

每次从数据库中选择20个电子邮件地址,循环这20个地址,并为每个地址调用mailgonder方法。

除了我上面写的,如果你写了多个TO,你的每个用户都会看到对方的电子邮件地址,从用户的角度来看,这并不酷。

我认为到目前为止最简单的方法是建立一个联系小组。这样做将使编写的代码量保持在最低限度。这里有一个链接,说明如何在Outlook中创建联系人组

设置好联系人组后,只需这样做:

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

代码的其余部分将正常工作。如果有人有更好/更简单的方法,请随时纠正我。

编辑:我有点震惊,我们建议他硬编码1500个电子邮件地址到他的代码。谁能给我一个好理由,为什么不使用电子邮件组?