我正在尝试编写一个为用户提供子域作为邮箱的服务。
所以我需要自己实现 IMAP 服务器。
我注意到 mimekit/mailkit 可以帮助我。(至少他们可以帮助我测试我的服务器。)
是否可以使用 mimekit/mailkit 实现最小 IMAP 协议(服务器端)?
2 回答
是否可以使用 mimekit/mailkit 实现最小 IMAP 服务器?
简短的回答:不!
该项目的主要目标是为 .NET 世界提供健壮、功能齐全且符合 RFC 的 SMTP、POP3 和 IMAP 客户端实现。
您应该注意邮件服务器(保存您的电子邮件,对外界可见并且通常是 24/7 实时)和主要用于从该服务器获取邮件的邮件客户端之间的巨大差异。
我会说MimeKit肯定会有所帮助,因为编写 IMAP 服务器(甚至是 POP3 或 SMTP 服务器)的一个重要部分是您在某些时候需要处理解析消息和/或标头,而 MimeKit 是完美的解决方案。
MailKit的某些部分可能有助于实现 IMAP 服务器。例如,UniqueId
为您的 IMAP 服务器项目重新使用(和相关的)类可能会很有用。同样,如果您最终实现了THREAD
扩展,那么MessageThreader
该类将是无价的。
该类ImapEncoding
肯定是可重用的。
您可能至少可以部分地重新使用ImapStream
(and ImapToken
) 类作为 IMAP 服务器的标记器,但我不能 100% 确定这一点,因为我从未从这个角度看待它,并且可能存在微妙的那里的差异,但您可能可以将其用作合理的起点。
ImapUtils.FormatInternalDate()
将是一个很好的重复使用的候选人......
如果您最终支持和/或IMAP 扩展,您可能也可以重用大量的FolderQuota
和类(并不是说这些类做了很多)。AccessControl
QUOTA
ACL
我敢肯定,还有其他各种有助于从 MailKit 重用的零碎物品,但是例如,您将无法轻松地将ImapClient
课程变成ImapServer
课程。
然后,当然,正如您在帖子中提到的,您始终可以使用 MailKit 作为测试 IMAP 服务器实现以确保一切正常的好方法。
希望这有助于回答您的问题。