Asp.net 发送大量电子邮件(超过100封邮件)

Asp.net 发送大量电子邮件(超过100封邮件),asp.net,email,smtpclient,Asp.net,Email,Smtpclient,我正在使用smtp.corp从ASP.NET站点发送电子邮件。 当选择50封邮件时,此处所有邮件都已发送(状态显示为已发送),但只有少数成员收到邮件(只有10名成员)。如何在asp.net中发送批量电子邮件 如果我选择了15封邮件,则有10封邮件正在发送,但其余邮件未发送。对于剩余的电子邮件,我从SMTP服务器收到此错误: 服务不可用,正在关闭传输通道。服务器 回答是:太多并发SM 听起来好像服务器已经告诉你了你的问题——并发连接太多了 很难从您自己的服务器有效地群发电子邮件,因为许多服务器都有

我正在使用smtp.corp从ASP.NET站点发送电子邮件。 当选择50封邮件时,此处所有邮件都已发送(状态显示为已发送),但只有少数成员收到邮件(只有10名成员)。如何在asp.net中发送批量电子邮件

如果我选择了15封邮件,则有10封邮件正在发送,但其余邮件未发送。对于剩余的电子邮件,我从SMTP服务器收到此错误:

服务不可用,正在关闭传输通道。服务器 回答是:太多并发SM


听起来好像服务器已经告诉你了你的问题——并发连接太多了

很难从您自己的服务器有效地群发电子邮件,因为许多服务器都有保护措施防止人们发送大量电子邮件(有充分的理由)。。。可以通过编程方式,也可以通过自己的收件箱

你可能需要

  • 编写一个错开电子邮件发送的服务

  • 如果是同一条消息,请发送一条消息并以密件传给所有人

  • 使用合法的批量邮件程序

  • 我认为2或3是你唯一的选择。即使你绕过了SMTP错误,就像@Alexandre所说的那样,它们也很可能最终会进入用户的垃圾邮件框中。。。如果你开始从你的服务器发送大量邮件,你将不得不开始担心诸如“发件人信誉”之类的事情,以免你的IP最终被列入“垃圾邮件发送者”的黑名单,而主要的电子邮件提供商干脆决定根本不发送你的电子邮件。这可能会破坏你在别人注册时发送一封“感谢注册”电子邮件的能力


    诚然,100封电子邮件并不多,所以1封可能是一个选择。但是考虑到你的代码注释引用了Gmail,那么你将来会遇到更多的问题,因为它们来自他们的服务器

    你确定它们不在你的用户的垃圾邮件框中吗?如果我选择15封邮件,则有10封邮件正在发送。其余的都没有发送。对于剩余的电子邮件,我从SMTP服务器收到此错误。(服务不可用,正在关闭传输通道。服务器响应为:并发SM太多)。这是某种类型的循环吗?将地址放入BCC字段如何?@Koen我的想法也是。。。如果是相同的消息。
    System.Net.Mail.MailMessage MyMailMessage = new System.Net.Mail.MailMessage();
    try
    {
        if (From == "") From = GetConfigVal("emailfrom");
    
        //System.Net.Mail.MailMessage MyMailMessage = new 
        System.Net.Mail.MailMessage(From, To, Subject, MailBody);
        if (FromName.Trim() != "")
        {
            MyMailMessage.From = new System.Net.Mail.MailAddress(From, FromName);
        }
        else
        {
            MyMailMessage.From = new System.Net.Mail.MailAddress(From);
        }
    
        MyMailMessage.To.Add(To);
        MyMailMessage.Subject = Subject;
        MyMailMessage.Body = MailBody;
    
        if (ReplyEmailID.Trim() != "")
        {
            MyMailMessage.ReplyToList.Add(new  
            System.Net.Mail.MailAddress(ReplyEmailID));
        }
    
        if (CC.Trim() != "")
        {
            MailAddress copy = new MailAddress(CC);
            MyMailMessage.CC.Add(copy);
        }
    
        MyMailMessage.IsBodyHtml = isHTML;
    
        //Proper Authentication Details need to be
        // passed when sending from gmail
    
        System.Net.NetworkCredential mailAuthentication = new
        System.Net.NetworkCredential(GetConfigVal("smtpuser"), 
        GetConfigVal("smtppassword"));
    
        //For different server like yahoo this details changes and you can
        //get it from respective server.
        System.Net.Mail.SmtpClient mailClient = new System.Net.Mail.SmtpClient(GetConfigVal("smtp"),                              int.Parse(GetConfigVal("smtpport")));
        //Enable SSL
        //mailClient.EnableSsl = true;
    
        //mailClient.Port = 25;
        mailClient.EnableSsl = false;
    
        //mailClient.UseDefaultCredentials = true;
    
        mailClient.Credentials = mailAuthentication;
        mailClient.Send(MyMailMessage);
    
    }