Question

ici est mon 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;
}

Je vous envoie plus de 60 000 e-mail en utilisant ce code, maintenant mon problème certains destinataire reçoit email tout de suite, mais certains d'entre eux obtient après quelques minutes et certains d'entre eux obtient même après quelques heures et peut-être beaucoup d'entre eux se perd avant d'atteindre destination. et mon ce numéro est toujours sans réponse. J'ai vraiment besoin d'aide dans ce domaine. je suis coincé. merci

Était-ce utile?

La solution

En fait, cela fait sens. Ne pensez-vous pas que par l'envoi d'e-mails 60K dans un très court laps de temps vous êtes susceptible d'être considéré comme un spammeur? Retarder les e-mails comme StrongMail fait est une bonne façon de vous empêcher d'être interdit par les fournisseurs de services Internet.

Autres conseils

Essayez les options suivantes: votre MailMessage doit être dans un bloc de using. , Vous n'avez pas besoin d'une nouvelle SmtpClient pour chaque message. Vous ne avez certainement pas besoin de le mettre à null! Ce n'est pas 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);
    }
}

Suggestion: faire des choses comme oMail pas le nom des variables. Nous savoir il est un objet. La plupart des choses sont. Il n'y a rien plus spécial sur les objets.

le problème est peu probable avec votre code, mais avec votre serveur SMTP.

Il pourrait être un certain nombre de questions, comme ne pas trouver les enregistrements MX dans votre serveur DNS (surtout si votre serveur DNS est faible et ne peut pas gérer les recherches que rapide).

Je voudrais vérifier vos journaux de serveur de messagerie, comme une indication quant à ce qui se passe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top