Domanda

Ecco il mio codice

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;
}

io mando oltre 60.000 e-mail utilizzando questo codice, ora il mio problema qualche destinatario riceve e-mail subito, ma alcuni di loro ottiene dopo pochi minuti e alcuni di loro ottiene anche dopo poche ore e possono essere molti di loro si perde prima di raggiungere a destinazione. e il mio Questo numero è ancora senza risposta. Ho davvero bisogno di aiuto in questo. sono bloccato. grazie

È stato utile?

Soluzione

In realtà questo ha un senso. Non pensi che con l'invio di messaggi di posta elettronica 60K in brevissimo lasso di tempo il vostro rischiano di essere considerato come uno spammer? Ritardare le e-mail come StrongMail fa è un buon modo per evitare di essere bandito dagli ISP.

Altri suggerimenti

Prova il seguente: la vostra MailMessage ha bisogno di essere in un blocco using. Inoltre, non è necessario un nuovo SmtpClient per ogni messaggio. Certamente non c'è bisogno di impostare a NULL! Questo non è 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);
    }
}

Suggerimento: non nominare le cose come le variabili oMail. We so Si tratta di un oggetto. La maggior parte delle cose sono. Non c'è niente di speciale gli oggetti più.

il problema non è probabile che con il codice, ma con il server SMTP.

Potrebbe essere un qualsiasi numero di questioni, come non riuscendo a trovare i record MX nel vostro server DNS (soprattutto se il server DNS è debole, e non è in grado di gestire le ricerche che veloce).

Vorrei controllare i log del server di posta, come qualche indicazione su ciò che sta accadendo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top