Visual C++ 7.0.NET 1.0Visual Studio .NET 2003.NET 1.1Visual Studio 2010Windows XPHTML中级开发Visual StudioWindowsC++.NETC#
使用 C# 的 IMAP 客户端库






4.65/5 (83投票s)
IMAPLibrary 支持基本的 IMAP 协议功能,用于从邮箱中获取邮件。
GitHub 链接: https://github.com/rohitjoshi/ImapLibrary
引言
互联网消息访问协议 (IMAP) 允许客户端访问和操作服务器上的电子邮件消息。它包括创建、删除和重命名邮箱的操作;检查新邮件;永久删除邮件;设置和清除标志; [RFC-822] 和 [MIME-IMB] 解析;搜索;以及选择性地获取消息属性、文本及其部分内容。更多信息:此处。
我编写了一个 IMAP 客户端库,它允许基本功能,如登录、选择/检查文件夹、搜索消息、获取消息(标头、正文)、获取存储配额和注销。
这是我用 C# 开发的第一个应用程序,所以不要对效率抱太大期望。它演示了套接字、XML 编写器和用户定义异常处理的用法。请随意修改和使用此代码。
附加的 zip 文件包含三个目录。
IMAP 库:它包含三个源文件。
- ImapBase.cs:包含与字符串相关的 IMAP 命令,以及与套接字相关的功能。
- ImapException.cs:定义用户定义的 IMAP 相关错误消息。
- Imap.cs:IMAP 客户端库函数。 它具有以下公共函数
Login
:登录到 IMAP 服务器。 它需要 IMAP 主机名、端口、用户名和密码。<COMMAND_PREFIX> LOGIN <USERID> <PASSWORD>\r\n
Logout
:注销并关闭套接字。<COMMAND_PREFIX> LOGOUT\r\n
SelectFolder
:它选择文件夹。 它需要文件夹名称作为参数。<COMMAND_PREFIX> SELECT <FOLDER>\r\n
ExamineFolder
:它类似于SelectFolder
,但它确实进行了检查。<COMMAND_PREFIX> EXAMINE <FOLDER>\r\n
GetQuota
:获取邮箱的配额。<COMMAND_PREFIX> GETQUOTAROOT <FOLDER>\r\n
SearchMessage
:您可以搜索消息。 它将返回消息的 UID。 例如,来自 rjoshi。<COMMAND_PREFIX> SEARCH <SEARCH STRING>\r\n
FetchMessage
:它检索带有附件的完整消息,并写入 XML 文件。 XML 文件将在您的当前目录中生成,文件名为 <MessageUID>.xml。 您需要传递XmlTextWriter
对象、消息 UID 和标志以获取正文。<COMMAND_PREFIX> UID FETCH <MSG UID> BODY[HEADER]
FetchPartBody
:获取特定部分的正文。 它需要消息 UID、部分编号作为参数。FetchPartHeader
:获取消息的标头。
文档:使用 Visual Studio .NET 生成的 IMAP 库的 HTML 文档。
IMAP 库测试程序:IMAP 测试程序允许用户测试以下功能。
- 登录
- 选择/检查文件夹
- 搜索
- 获取消息
- 获取配额
- Logout
- 删除消息
- 将消息标记为未读
- 移动消息
更新: 增加了对以下内容的支持
- SSL 连接并已通过 Gmail 验证
- 复制消息
- 移动消息
- 删除消息
- 将消息标记为未读
如果您喜欢这个库,请不要忘记投票,并在 github 存储库 中欢迎 PR!!