C#에서 전송 된 이메일 수신 지연
문제
여기 내 코드가 있습니다
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 서버가 약하고 조회를 빠르게 처리 할 수없는 경우).
무슨 일이 일어나고 있는지에 대한 정보로 메일 서버 로그를 확인합니다.
제휴하지 않습니다 StackOverflow