Массовая электронная почта не достигает места назначения, потеряна в сети - PullRequest
0 голосов
/ 02 апреля 2019

Я отправляю около 5000 электронных писем на SMTP-сервер IIS Windows 2012 R2 (Server1) с помощью почтового клиента aspose (используя c #) в цикле. Очередь отправленных писем в очереди SMTP-сервера. Из этой очереди они все отправляются в одно и то же место (сервер хранения сообщений оракула - Server2).

Проблема в том, что около 700-800 (случайно каждый раз) электронных писем теряются при транспортировке.

Вопросы - Есть ли способ, которым я могу поставить в очередь все электронные письма, полученные на Server1, чтобы гарантировать, что он получает полные 5000 электронных писем? Любая настройка, чтобы он мог получать электронные письма, но не пересылать их?

Не гарантируется ли доставка почты по SMTP получателю? Поскольку нет механизма регулирования, я думаю, что я задыхаюсь в сети, отправляя большое количество электронных писем, а затем письма теряются в сети. Если это так, есть ли механизм, с помощью которого SMTP-сервер может быть настроен для медленной обработки очереди. Отправьте несколько, а затем подождите и так далее.

Любая помощь в этом отношении очень ценится.

Заранее спасибо.

1 Ответ

0 голосов
/ 03 апреля 2019

@ Atin

Aspose.Email также позволяет отправлять электронную почту в виде больших объемов. Кроме того, на стороне сервера также зависит то, сколько электронной почты он может обрабатывать в любой момент времени, чтобы избежать любой бомбардировки электронной почты. Там могут быть настройки на стороне сервера. Однако, с точки зрения Aspose.Email, вы можете рассмотреть возможность использования следующего примера кода, а не отправки через циклы. Вы можете разделить большие порции писем на маленькие, а затем отправлять с помощью опции Массовая рассылка, предоставляемая Aspose.Email.

SmtpClient client = new SmtpClient("mail.server.com", 25, "Username", "Password");

//Create instances of MailMessage class and Specify To, From, Subject and Message
MailMessage message1 = new MailMessage("msg1@from.com", "msg1@to.com", "Subject1", "message1, how are you?");
MailMessage message2 = new MailMessage("msg1@from.com", "msg2@to.com", "Subject2", "message2, how are you?");
MailMessage message3 = new MailMessage("msg1@from.com", "msg3@to.com", "Subject3", "message3, how are you?");

//Create an instance of MailMessageCollection class
MailMessageCollection manyMsg = new MailMessageCollection();
manyMsg.Add(message1);
manyMsg.Add(message2);
manyMsg.Add(message3);

//Use client.BulkSend function to complete the bulk send task
try
{
 // Send Message using BulkSend method
 client.Send(manyMsg);                
 Console.WriteLine("Message sent");
}
catch (Exception ex)
{
 Trace.WriteLine(ex.ToString());
}
...