大批电子邮件未到达目的地,在网络中丢失

时间:2019-04-02 06:01:57

标签: c# iis smtp bulk mass-emails

我正在循环使用aspose电子邮件客户端(使用c#)向IIS smtp服务器Windows 2012 R2(Server1)发送大约5000封电子邮件。电子邮件在smtp服务器队列中触发了队列。从该队列中,它们都被发送到同一目的地(一个Oracle电子邮件归档服务器-Server2)。

问题是-大约700-800(每次随机)电子邮件在传输中丢失。

问题- 有什么办法可以使Server1上收到的所有电子邮件排队,以确保它收到完整的5000封电子邮件?有任何设置,以便它可以接收电子邮件但不转发吗?

是否不能保证将smtp电子邮件传递给收件人?由于没有限制机制,我认为我正在通过发送大量电子邮件来阻塞网络,然后在网络中丢失了电子邮件。如果是这样,是否有一种机制可以将smtp服务器配置为缓慢处理队列。发出一些然后等待等等。

在这方面的任何帮助都将受到赞赏。

谢谢。

1 个答案:

答案 0 :(得分:0)

@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());
}
相关问题