1

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

4

2 回答 2

1

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

简短的回答:不!

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

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

于 2016-09-18T08:28:49.950 回答
1

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

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

该类ImapEncoding肯定是可重用的。

可能至少可以部分地重新使用ImapStream(and ImapToken) 类作为 IMAP 服务器的标记器,但我不能 100% 确定这一点,因为我从未从这个角度看待它,并且可能存在微妙的那里的差异,但您可能可以将其用作合理的起点。

ImapUtils.FormatInternalDate()将是一个很好的重复使用的候选人......

如果您最终支持和/或IMAP 扩展,您可能也可以重用大量的FolderQuota和类(并不是说这些类做了很多)。AccessControlQUOTAACL

我敢肯定,还有其他各种有助于从 MailKit 重用的零碎物品,但是例如,您将无法轻松地将ImapClient课程变成ImapServer课程。

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

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

于 2016-09-18T13:16:33.350 回答