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 " http://host:port/doveadm/v1
curl –u doveadm:password http://host:port/doveadm/v1

举例

curl -H "Authorization: X-Dovecot-API dG9tLjEyMw==" -X POST http://172.25.16.35:10000/doveadm/v1 -H "Content-Type: application/json" -d '[["reload",{},"tag1"]]'

这等效于命令。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/

你可能感兴趣的:(mail,linux)