2016-09-18 176 views
0

我正在嘗試編寫一項服務,爲用戶提供一個子域作爲郵箱。
所以我需要自己實現IMAP服務器。
我注意到mimekit/mailkit可以幫助我。 (至少他們可以幫助我測試我的服務器。)
使用mimekit/mailkit可以實現最小的IMAP協議(服務器端)嗎?如何使用C#實現IMAP協議(服務器端)#

+0

這是golang版本的imap-server。 https://github.com/jordwest/imap-server – qin

回答

1

我會說MimeKit肯定會有所幫助,因爲編寫IMAP服務器(或甚至是POP3或SMTP服務器)的重要部分是您在某些時候需要處理解析消息和/或標題和MimeKit是一個完美的解決方案。

還有部分 MailKit可能有助於實現IMAP服務器。例如,爲您的IMAP服務器項目重新使用UniqueId(及相關)類可能會有用。同樣,如果您最終實施THREAD擴展,那麼MessageThreader類將是無價的。

ImapEncoding類肯定是可重用的。

可能能夠至少部分地重新使用ImapStream(和ImapToken)類作爲您的標記生成一個IMAP服務器,但我不是100%確定,因爲我從來沒有看它從這個角度來看,那裏可能會有細微的差異,但你可以把它作爲一個合理的起點。

ImapUtils.FormatInternalDate()會重用一個很好的候選人...

您可能能夠重用很多FolderQuotaAccessControl類的,以及如果你最終支持QUOTA和/或ACL IMAP擴展(不是那些班級做得很多)。

我敢肯定還有許多其他位&件,將有助於重新使用從MailKit,但你將無法輕鬆地打開ImapClient類爲ImapServer類,例如。

然後,當然,正如您在文章中提到的那樣,您始終可以使用MailKit作爲測試IMAP服務器實現以確保工作正常的好方法。

希望能幫助回答你的問題。

1

是否可以使用mimekit/mailkit實現最小IMAP服務器?

簡答:不!

該項目的主要目標是提供.NET世界 強勁,功能齊全和符合RFC的SMTP,POP3和IMAP客戶端 實現。

您應該提防一臺郵件服務器之間的巨大差別(這使你的電子郵件,是對外界可見的,通常是24/7實時),並主要用於從獲取電子郵件的郵件客戶端那個切斷。

+0

IMAP服務器不等於郵件服務器。我的意思是隻實施IMAP協議(服務器端)。我只是希望用戶可以使用IMAP來獲取郵件。 – qin