Frage

Hier ist mein Code

for(int i = 0; i < number ; i++)
{
  MailAddress to = new MailAddress(iMail.to);
  MailAddress from = new MailAddress(iMail.from, iMail.displayName);
  string body = iMail.body;
  string subject = iMail.sub;
  oMail = new MailMessage(from, to);
  oMail.Subject = subject;
  oMail.Body = body;
  oMail.IsBodyHtml = true;
  oMail.Priority = MailPriority.Normal;
  oMail.Sender = from;
  s = new SmtpClient(smtpServer);
  s.ServicePoint.ConnectionLeaseTimeout = 0;
  if (s != null)
  {
     s.Send(oMail);
  }
  oMail.Dispose();
  s = null;
}

i über 60.000 E-Mail sende diesen Code verwenden, jetzt mein Problem einige Empfänger E-Mail sofort bekommt aber einige von ihnen wird nach wenigen Minuten und einige von ihnen bekommt auch nach einigen Stunden und viele von ihnen sein kann, vor dem Erreichen zu verloren geht Ziel. und meine noch unbeantwortet ist. Ich brauche Hilfe in diesem wirklich. ich stecke fest. Dank

War es hilfreich?

Lösung

Eigentlich macht den Sinn. Glauben Sie nicht, dass 60K E-Mails in kürzester Zeit, indem Sie Ihre wahrscheinlich als Spammer betrachtet werden? Verzögern der E-Mails wie Strong tut, ist ein guter Weg, Sie zu verhindern, dass die von dem ISPs verboten.

Andere Tipps

Versuchen Sie Folgendes: Ihre Mailmessage muss in einem using Block sein. Auch Sie kein neues SmtpClient für jede Nachricht benötigen. Sie brauchen sicher nicht einstellen es null zu! Dies ist nicht VB6.

SmtpClient smtpClient = new SmtpClient(smtpServer);
smtpClient.ServicePoint.ConnectionLeaseTimeout = 0;
for (int i = 0; i < number; i++)
{
    MailAddress to = new MailAddress(iMail.to);
    MailAddress from = new MailAddress(iMail.from, iMail.displayName);
    string body = iMail.body;
    string subject = iMail.sub;
    using (MailMessage mailMessage = new MailMessage(from, to))
    {
        mailMessage.Subject = subject;
        mailMessage.Body = body;
        mailMessage.IsBodyHtml = true;
        mailMessage.Priority = MailPriority.Normal;
        mailMessage.Sender = from;
        smtpClient.Send(mailMessage);
    }
}

Vorschlag: keine Variablen Dinge wie oMail nennen. Wir wissen es ist ein Objekt. Die meisten Dinge sind. Es gibt nichts besonderes über Objekte mehr.

das Problem ist nicht wahrscheinlich mit Ihrem Code, sondern mit Ihrem SMTP-Server.

Es könnte eine beliebige Anzahl von Themen sein, wie andernfalls MX-Datensätze in der DNS-Server (vor allem, wenn der DNS-Server ist schwach, und nicht verarbeiten kann die Lookups, die schnell).

finden

Ich würde Ihre E-Mail-Server-Protokolle prüfen, wie einiger Hinweis darauf, was geschieht.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top