【问题标题】:How to implement IMAP Protocol (Server side) using C# [closed]如何使用 C# 实现 IMAP 协议(​​服务器端)[关闭]
【发布时间】:2016-09-18 08:15:01
【问题描述】:

我正在尝试编写一个为用户提供子域作为邮箱的服务。
所以我需要自己实现 IMAP 服务器。
我注意到 mimekit/mailkit 可以帮助我。 (至少他们可以帮助我测试我的服务器。)
是否可以使用 mimekit/mailkit 实现最小 IMAP 协议(​​服务器端)?

【问题讨论】:

标签: c# imap mailkit mimekit


【解决方案1】:

我会说 MimeKit 肯定会有所帮助,因为编写 IMAP 服务器(甚至是 POP3 或 SMTP 服务器)的重要部分是您在某些时候需要处理解析消息和/或标题,MimeKit 是一个完美的解决方案。

MailKit 的部分可能有助于实现 IMAP 服务器。例如,为您的 IMAP 服务器项目重新使用 UniqueId(和相关)类可能会很有用。同样,如果您最终实现 THREAD 扩展,MessageThreader 类将是无价的。

ImapEncoding 类肯定是可重用的。

可能能够至少部分重用 ImapStream(和 ImapToken)类作为 IMAP 服务器的标记器,但我不能 100% 确定这一点因为我从来没有从那个角度看过它,那里可能会有细微的差别,但你可以把它作为一个合理的起点。

ImapUtils.FormatInternalDate() 将是重用的良好候选...

如果您最终支持QUOTA 和/或ACL IMAP 扩展,那么您也许可以重用很多FolderQuotaAccessControl 类(并不是说这些类有多大作用)。

我确信还有其他各种有助于从 MailKit 重用的零碎物品,但是例如,您将无法轻松地将 ImapClient 类转换为 ImapServer 类。

当然,正如您在帖子中提到的,您始终可以使用 MailKit 作为测试 IMAP 服务器实现以确保一切正常的好方法。

希望这有助于回答您的问题。

【讨论】:

    【解决方案2】:

    是否可以使用 mimekit/mailkit 实现最小的 IMAP 服务器?

    简短回答:不!

    该项目的主要目标是为 .NET 世界提供 强大、功能齐全且符合 RFC 的 SMTP、POP3 和 IMAP 客户端 实现。

    您应该注意邮件服务器(保存您的电子邮件,对外界可见并且通常是 24/7 全天候实时)和主要用于从该服务器获取邮件的邮件客户端之间的巨大差异。

    【讨论】:

    • IMAP 服务器不等于邮件服务器。我的意思是只实现 IMAP 协议(​​服务器端)。我只是希望用户可以使用 IMAP 来获取邮件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2011-09-15
    • 2014-04-14
    相关资源
    最近更新 更多