我想用webman 搭建一個類似于EwoMail的郵局系統(tǒng)
先說一下既然有了EwoMail為什么不直接使用,而是重復造輪子
官網:http://www.ewomail.com/
EwoMail是一個商業(yè)項目 雖然有開源版的但是項目代碼開源度不夠完善
如果在當前業(yè)務沒有拓展的話還好
比如想增加一些API啥的雖然在開源版中也可以去自己手動實現
但是相對來說很麻煩也很復雜而且對于他的項目結構也不是非常清楚
所以我想自己制作一個郵局系統(tǒng)
在webman中是可以自定義進程的 我的想法是用自定義進程去實現監(jiān)聽收件。然后把郵件存放到指定位置
webman自定義進程是相當于對workerman的一個簡單封裝那由此又引發(fā)一個問題 自定義協(xié)議 workerman中并沒有監(jiān)聽郵件的協(xié)議 所以只能使用workerman的自定義協(xié)議
在Workerman中想指定協(xié)議是需要在項目目錄中定義一個Protocols文件夾 那么咋webman中自定義協(xié)議難道也要在項目根目錄定義一個Protocols文件夾么? 這個暫時不清楚我還沒有去進行實踐
總結:感覺問題很多如何自定義協(xié)議 然后我雖然知道郵局需要 IMAP協(xié)議 和 POP協(xié)議 但是我并不知道該如何去定義 沒辦法本人小白對于這些確實不太會 希望有大佬解答
看問題還是要看本質,webman提供的的自定義進程就是對workerman的一層wrapper【或者你可以將wokerman理解為webman的一個子集也是可以的】,所以你的問題就迎刃而解了,方案就是基于高階的自定義進程來實現:
一直以為EwoMail是純php開發(fā)的郵局,仔細看看他的文檔,發(fā)現用的都是一些別人的組件,只是用php做了一個管理后臺,我想知道PHP真的能做到接收郵件嗎?
首先我認為這和用什么語言開發(fā)沒有任何關系,用C、JAVA、go等一樣樣的,理論上講完全是可行的,
郵件領域內的協(xié)議都是應用層協(xié)議,既然是應用層協(xié)議,那么socket就可以穿透,而workerman就具有這個能力,
因為它封裝了socket實現,所以你的問題焦點應該集中在郵件協(xié)議的細節(jié)開發(fā)實現部分,
喜歡用PHP或者說用workerman來開發(fā)這種服務,顯然還是得益于workerman的方便、高效和快捷;
另外你說技術封鎖?這個應該說是國內專業(yè)技術資源相對匱乏的現實吧,底層核心技術以及文獻基本都是老外打底的,
所以尋找這種專業(yè)性的技術文獻還得去官方站或者多google來找,比如郵件協(xié)議的specification應該去找RFC
https://datatracker.ietf.org/doc/html/rfc5321
最后我感覺這是很有意義和挑戰(zhàn)的事情,支持你搞哈。