WebForms.NET 1.1Visual Studio 2005ADO.NET设计 / 图形架构XMLWindows Forms中级开发Visual StudioWindows.NETASP.NETC#
防火墙上的 POP3 客户端






3.45/5 (8投票s)
2007 年 7 月 13 日
2分钟阅读

41253

749
一个连接到 POP3 服务器的 Web 服务实现

引言
这是我在XML 序列化和防火墙中使用的相同架构的更复杂的实现。
该解决方案由一个 Webservice 组成,该 Webservice 充当代理(它接收请求,连接到 POP3 服务器,并返回处理后的答案)和一个客户端,该客户端接收并将结果呈现给用户。
背景
具备 Webservice 和网络编程的基础经验将会有所帮助。
Using the Code
代码本身并没有任何特别的难度。但我试图保持一种设计,其中所有组件类都清晰地分离。
Windows 客户端使用对本地主机上托管的 Webservice 的引用进行编码。 这样可以快速轻松地构建解决方案,但您可能希望将其指向托管在 LAN 外部的 Web 服务器,该服务器不会被阻止您浏览器的同一防火墙阻止。
组件项目
该解决方案由几个项目组成。
基本元素
这些是最通用的类。您将找到实现 EMail
结构和 Quoted Text Decoder 的类。
EMail 支持
可能不是一个好名字。 这是处理与 POP3 服务器的通信并将其答案转换为相应的 EMail
对象的地方。 POP3Manager
封装了前两个类,并为用户提供了一个更友好的界面。
WebService
它将 POP3Manager
作为 Webservice 公开。
Windows 客户端(用户界面 & 应用程序支持)
第一个实现了一个 Windows Forms 用户界面。 第二个是一个简单的类,用于处理 Web Reference 的代理类。
待定
这是一个非常早期的基本构建。 主要目的是展示所述解决方案的有效实施。 目前它将显示许多限制和错误(客户端和服务器端以及电子邮件解析过程中的许多错误)。
您可能会注意到 SMTP 类。 它尚未实现。
历史
如果提供反馈或请求支持,我将继续处理此示例应用程序。
- 7 月 21 日日:增加了对 POP3S(或通过 SSL 的 POP3)的支持。 检查
Pop3Manager
和Pop3Client
的更改。 您会发现协议本身不需要任何更改,而是需要配置TcpClient
以正确处理 SSL 流。 有一个名为SslManager
的新类。 它仅为这些任务提供最基本的支持,进一步开发可能会很有用。 我仍然没有时间修改客户端界面来支持这项新功能。