天天看點

Dovecot的API簡單學習使用

Dovecot這個東西就是個存郵件的,不具體解釋了。然後這個管理指令doveadm官方提供一些API接口

Doveadm HTTP API自v2.2.22起可用。在v2.2.22中被認為是實驗性的。從2.2.23開始可以被認為是穩定的。它使您可以通過HTTP傳輸執行doveadm指令。

是以,使用就得看下dovecot的版本。我們生産上老版本是無法使用API的。在我安裝配置的新版的dovecot上已經可以支援API接口了

要啟用API

(1)你需要在配置檔案裡給他啟用

/home/mail/dovecot/etc/dovecot.conf
           
service doveadm {
   inet_listener http {
      port = 8080 #端口可以随你改
      #ssl = yes # uncomment to enable https
   }
}
           

要啟用SSL,請確定全局設定中要求ssl = yes或ssl = required,然後在偵聽器中設定ssl = yes。

(2)為了能夠使用doveadm http api,必須配置doveadm的密碼或api鍵

要在/etc/dovecot/dovecot.conf中配置doveadm服務的密碼:

doveadm_password = secretpassword
           

或者,如果首選對doveadm http api使用單獨的密鑰,則可以通過在config中定義密鑰來啟用它

doveadm_api_key = key
           

配置完成 doveadm reload就可以了

如何使用

基本的身份認證方法

curl -H "Authorization: Basic <base64 doveadm:doveadm_password>" http://host:port/doveadm/v1
curl –u doveadm:password http://host:port/doveadm/v1
           

舉例

這等效于指令。doveadm reload

成功回應:

[
    [
        "doveadmResponse",
        [],
        "tag1"
    ]
]
           

這裡需要注意的是,認證的key,需要進行base64編碼才行

發送給API的所有指令都需要以json格式釋出,使用請求類型的标頭和json内容作為有效載荷,格式為:Content-Type: application/json

目前,最安全的做法是不要在一個json負載中發送多個指令,因為某些指令可能會在某些錯誤情況下殺死伺服器,并使您無任何響應。另外,不能保證指令将按順序處理。

所有指令區分大小寫

這個都是POST請求過去的。代碼裡應該可以按照POST請求接口了

直接把官方位址給出,百度出來的破玩意品質不行。還是找官方吧

https://wiki.dovecot.org/Design/DoveadmProtocol/HTTP

https://doc.dovecot.org/admin_manual/doveadm_http_api/

繼續閱讀