2014-09-21 38 views
-1

我需要在C#中创建一个SMTP服务器。我已经开发了一个使用SMTP客户端发送大量邮件(近100万/小时)的应用程序。但是,当它达到特定限制时,我会收到'操作超时'错误消息。当我检查了我的SMTP服务器(专用服务器)时,我发现邮件队列中有很多邮件,发送到远程服务器的邮件的比例与来自SMTP客户端的邮件相比非常低。因此我计划开发自己的SMTP服务器应用程序。我需要启动尽可能多的线程,并提高发送速率。我有两个专用服务器。一个用于运行我已经创建的另一个用于SMTP服务器的Bulk Mail应用程序。所以请帮我创建一个非常高效的SMTP服务器应用程序。也请提供源代码示例的链接。然后,我可以轻松地参考并创建一个好的。在C#中创建一个SMTP服务器#

在此先感谢。

+1

这似乎是解决问题的错误方法。已经有大量的SMTP服务器可用。很可能你打算建立一个比任何可用的更好的。看起来更高效的方法首先是确定什么放缓了现有的服务器。 – David 2014-09-21 20:23:02

+0

构建SMTP服务器非常困难吗?如果我创建了一个SMTP服务器,那么我可以根据我们的需要完全构建它。这就是我的想法。 – Shoaib 2014-09-22 05:15:51

+0

我试图配置当前的SMTP服务器,我正在使用什么。但在达到15,000到20,000封邮件时仍然收到错误消息。我需要发送邮件,而不会失败。请帮助我开发一个SMTP应用程序。我已经搜索了很多获取一些源代码样本。但无法找出。 – Shoaib 2014-09-22 09:27:15

回答

0

听起来像你对我的邮件添加到队列比SMTP服务器更快的可以给他们这样的队列越来越长,最终需要太多的时间来发送个人电子邮件,因此超时。您可以将电子邮件的超时时间从默认值(C#中的100000 ms)更改为任何您希望防止超时的电子邮件。

SmtpClient mSmtpClient = new SmtpClient("smtp.office365.com", 587); 
mSmtpClient.Timeout = //Time in milliseconds 

这不会解决您的问题,但如果您的问题是峰谷问题,它可能会消除它。通过这种策略,你正在玩火,你的失败会因为每次失败而失去更多的潜力而被拖延。我建议调整你的硬件,也许第二个smtp继电器或这种性质的东西。我只是希望我不会在这篇文章中启用垃圾邮件机器人。

+0

行..我会尽量增加时间到1小时。我找到了另一种选择。其实我使用邮件启用SMTP服务器。我有一个选项可以将邮件直接注入到SMTP Outgoing Queue文件夹中。现在我正在尝试那个。请让我知道你对此的看法。为此,我必须在发送队列文件夹中创建两个文件。所以,我认为是,将消耗更少的时间不是通过SMTP客户端发送邮件创建文件更快的选择。 – Shoaib 2014-09-24 09:08:33