задержка в получении электронной почты, отправленной с C # - PullRequest
0 голосов
/ 09 февраля 2010

вот мой код

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

Я отправляю более 60 000 электронных писем с использованием этого кода, и теперь моя проблема: некоторые получатели получают электронную почту сразу, но некоторые из них получают через несколько минут, а некоторые - даже через несколько часов, и, возможно, многие из них теряются до достижения место назначения. и мой Этот вопрос до сих пор остается без ответа. Мне действительно нужна помощь в этом. Я застрял. спасибо

Ответы [ 3 ]

2 голосов
/ 09 февраля 2010

Попробуйте следующее: ваше MailMessage должно быть в блоке using. Кроме того, вам не нужен новый SmtpClient для каждого сообщения. Вам, конечно, не нужно устанавливать его в ноль! Это не 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);
    }
}

Предложение: не называйте переменные такими вещами, как oMail. Мы знаем это объект. Большинство вещей есть. В объектах больше нет ничего особенного.

0 голосов
/ 09 февраля 2010

проблема скорее всего не с вашим кодом, а с вашим SMTP-сервером.

Это может быть любое количество проблем, например, не удается найти записи MX на вашем DNS-сервере (особенно если ваш DNS-сервер слабый и не может так быстро выполнять поиск).

Я бы проверил журналы вашего почтового сервера, чтобы узнать, что происходит.

0 голосов
/ 09 февраля 2010

На самом деле это имеет смысл. Не думаете ли вы, что, отправив 60 тыс. Электронных писем в очень короткие сроки, вы, скорее всего, будете считаться спамером? Задержка электронных писем, как это делает StrongMail, - это хороший способ не дать вам быть заблокированными интернет-провайдерами.

...