Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.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# 两个单独的Windows服务能否同时访问同一POP邮箱?_C#_Pop3 - Fatal编程技术网

C# 两个单独的Windows服务能否同时访问同一POP邮箱?

C# 两个单独的Windows服务能否同时访问同一POP邮箱?,c#,pop3,C#,Pop3,我们只有一个POP电子邮件帐户。此电子邮件帐户由以下内容填写: 主题为XYZ的邮件 主题为ABC的邮件 我们有两个Windows服务 服务1-只接收主题为XYZ的电子邮件(读取电子邮件,将其存储在数据库中,然后从邮箱中删除) 服务2-只接收主题为ABC的电子邮件(读取电子邮件,将其存储在数据库中,然后从邮箱中删除) 这两个独立的C#服务(服务1和服务2)(.Net framework 4.0)是否可以在启用POP的单个邮箱上同时运行,并且在邮箱上不存在任何访问冲突?是-通常不限制有多少客

我们只有一个POP电子邮件帐户。此电子邮件帐户由以下内容填写:

  • 主题为XYZ的邮件
  • 主题为ABC的邮件
我们有两个Windows服务

  • 服务1-只接收主题为XYZ的电子邮件(读取电子邮件,将其存储在数据库中,然后从邮箱中删除)
  • 服务2-只接收主题为ABC的电子邮件(读取电子邮件,将其存储在数据库中,然后从邮箱中删除)

这两个独立的C#服务(服务1和服务2)(.Net framework 4.0)是否可以在启用POP的单个邮箱上同时运行,并且在邮箱上不存在任何访问冲突?

是-通常不限制有多少客户端可以顺序连接到同一个帐户

注释

  • 您不应该经常连接-轮询和断开连接是预期的方法
  • 由于POP3处理项目的方式,您可能在删除项目时遇到问题-如果服务器允许同一用户的两个客户端同时处于事务状态(不太可能),则可能需要以某种方式同步删除
  • 除了独占的单用户访问之外,服务器还可以防止来自不同IP的频繁访问-如果有任何限制,您需要与特定的服务提供商联系(也可能是2-3个知名客户,您可以)

有关详细信息,请参阅。

是的,多个进程应该能够同时从同一邮箱读取

警告是

  • 服务器支持同时访问(应该)
  • 这两个进程都没有删除消息
  • 警告#2很重要,因为两个进程都必须通读消息列表以找到适合它们的消息,但两个进程都不知道另一个进程已经读取了哪些消息。如果任何一个进程删除了一条消息,那么就有可能一个进程已经知道该消息存在,并在第二个进程删除该消息后尝试读取该消息。(比赛条件。)


    更好的方法可能是让一个“邮件阅读器”进程读取所有邮件,将它们输入不同的队列(可能存储在数据库中),然后由另外两个“Do Work”进程处理。邮件读取器进程成功将邮件放入队列后,它就可以安全地从邮箱中删除邮件。

    是的,没有理由不这样做。就像在你的手机上一样,你可以同步你的电子邮件,但也可以在你的桌面电脑上同步-你可以使用outlook与同一个电子邮件帐户同步。同样,当你说在.NET中发送电子邮件时,你可能会在一个网站上发送来自多个用户的电子邮件(例如订单通知)-会有多个用户在你的网站上调用此功能。使用相同的电子邮件帐户但不同的内容可能发送到不同的电子邮件地址(但使用相同的POP详细信息/电子邮件服务器等)