Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 大量电子邮件未到达目的地,在网络中丢失_C#_Iis_Smtp_Bulk_Mass Emails - Fatal编程技术网

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

C# 大量电子邮件未到达目的地,在网络中丢失,c#,iis,smtp,bulk,mass-emails,C#,Iis,Smtp,Bulk,Mass Emails,我正在使用aspose电子邮件客户端(使用c#)循环向IIS smtp服务器Windows 2012 R2(服务器1)发送大约5000封电子邮件。已激发的电子邮件在smtp服务器队列中排队。从该队列中,它们都被发送到同一个目的地(oracle电子邮件归档服务器-Server2) 问题是-大约700-800封(每次随机)电子邮件在传输过程中丢失 问题- 有没有办法让我对Server1上接收到的所有电子邮件进行排队,以确保它接收到完整的5000封电子邮件?任何设置,以便它可以接收电子邮件,但不转发它

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

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

问题- 有没有办法让我对Server1上接收到的所有电子邮件进行排队,以确保它接收到完整的5000封电子邮件?任何设置,以便它可以接收电子邮件,但不转发它们

smtp电子邮件是否不保证发送给收件人?由于没有节流机制,我想我发送了大量电子邮件,然后在迷失的网络中发送电子邮件,从而阻塞了网络。如果是这样,是否有一种机制可以将smtp服务器配置为缓慢处理队列。发送一些,然后等待等等

在这方面的任何帮助都是非常感谢的

提前谢谢。

@Atin

电子邮件也可以让你以成堆的形式发送电子邮件。此外,它还取决于服务器端在任何给定时间可以处理多少批量电子邮件,以避免任何电子邮件轰炸。服务器端可能有一些设置。但是,从ASSITE.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());
}

你说在运输途中丢失是什么意思?您是否有一些日志或其他信息?
smtp电子邮件是否不保证发送给收件人?
是,不保证。在这种情况下,考虑使用类似于ESP的活动监视器或邮件枪。免责声明:我为Campaign Monitor工作。
如果是这样,是否有一种机制可以将smtp服务器配置为缓慢处理队列。
是的(但这对于stackoverflow来说不是一个合适的问题,因为它实际上与编程无关)。但是,根据您的规模,我建议使用ESP或只是将它们以更慢的速度发送到SMTP服务器。@VijunavVastivch,是的,我在发送的客户端上有日志,它说它发送了5000封电子邮件。关于服务器上的日志,Server1有日志,其中没有错误。我无法访问服务器2您是否使用附件?还是纯文本?