문제

여기 내 코드가 있습니다

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 개가 넘는 이메일을 보내고 있습니다. 이제 내 문제는 일부 수신자가 즉시 이메일을 받지만 일부는 몇 분 후에 도달하고 일부는 몇 시간 후에도 얻을 수 있으며 목적지에 도달하기 전에 많은 사람들이 길을 잃을 수 있습니다. 그리고 내 이 문제 여전히 답이 없습니다. 나는 이것에 대한 도움이 정말로 필요하다. 나는 붙어있다. 감사해요

도움이 되었습니까?

해결책

실제로 그것은 의미가 있습니다. 아주 짧은 시간에 60k 이메일을 보내면 스패머로 간주 될 가능성이 없다고 생각하지 않습니까? Strongmail과 같은 이메일을 지연시키는 것은 ISP에 의해 금지되는 것을 방지하는 좋은 방법입니다.

다른 팁

다음을 시도해보십시오. 우편물이 있어야합니다. using 차단하다. 또한 새로운 것이 필요하지 않습니다 SmtpClient 각 메시지에 대해. 당신은 확실히 그것을 null로 설정할 필요가 없습니다! 이것은 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. 우리 알다 그것은 대상입니다. 대부분의 것들이 있습니다. 더 이상 물체에 대해 특별한 것은 없습니다.

문제는 코드가 아니라 SMTP 서버와 관련이있을 수 있습니다.

DNS 서버에서 MX 레코드를 찾지 못하는 등 여러 가지 문제 일 수 있습니다 (특히 DNS 서버가 약하고 조회를 빠르게 처리 할 수없는 경우).

무슨 일이 일어나고 있는지에 대한 정보로 메일 서버 로그를 확인합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top