实现了RFC-5804 Manage Sieve客户端。
项目描述
概述
“远程管理Sieve脚本的协议”的纯Python客户端实现,如RFC-5804中定义。它适用于Python 2.7或Python 3.3+。
模块内容
class Managesieve
与sieve服务器交互的主类。
以下是Managesive类的成员。所有这些方法都可能引发一个ServerResponseNo或ServerResponseBye异常。有关服务器返回NO或BYE的详细情况,请参阅RFC-5804。
Managesieve(host=None, port=None)
如果host为None,则默认为‘localhost’。如果port为None,则默认为4190。将立即建立与服务器的连接。此方法可能引发由socket模块引发的任何异常。
cmd_authenticate(auth_type, options=None)
向sieve服务器发送AUTHENTICATION请求,以及指定的任何选项。如果成功,则返回None。如果认证失败,则引发一个ServerResponseNo异常。
cmd_capability()
向sieve服务器发送CAPABILITY请求。返回一个元组列表,每个元组对应服务器返回的一个功能。
cmd_checkscript(contents)
向sieve服务器发送CHECKSCRIPT请求。如果脚本的内容有效,则返回None。否则,引发一个ServerResponseNo异常。
cmd_deletescript(name)
向sieve服务器发送一个DELETESCRIPT请求。删除脚本name。成功时返回None。如果脚本无法删除(例如,如果脚本不存在或当前是活动脚本),则引发ServerResponseNo。
cmd_getscript(name)
向sieve服务器发送一个GETSCRIPT请求。成功时,返回名为name的脚本内容。如果出错(例如,如果脚本不存在),则引发ServerResponseNo异常。
cmd_havespace(name, size)
向sieve服务器发送一个HAVESPACE请求。其中name是可能不存在的脚本名称,size是字节数。如果服务器愿意存储名为name大小为size的脚本,则返回None。否则,引发ServerResponseNo异常。
cmd_listscripts()
向sieve服务器发送一个LISTSCRIPT请求。成功时,返回一个元组。第一个元素是包含服务器上所有脚本名称的集合。如果脚本处于活动状态,则其名称在元组的第二个元素中返回。如果没有脚本处于活动状态,则第二个元素为None。
cmd_logout()
向sieve服务器发送一个LOGOUT请求。用户被注销,成功时返回None。
cmd_noop()
向sieve服务器发送一个NOOP请求。这是一个协议无操作,可以用来保持连接活跃。返回None。
cmd_putscript(name, contents)
向sieve服务器发送一个PUTSCRIPT请求。在服务器上存储一个名为name、内容由contents指定的脚本。成功时返回None。如果发生错误,包括脚本内容无效,则引发ServerResponseNo异常。请注意,将脚本放入服务器不会更改当前活动脚本。
cmd_renamescript(oldname, newname)
向sieve服务器发送一个RENAMESCRIPT请求。将名为oldname的脚本重命名为newname。成功时返回None。
cmd_setactive(name)
向sieve服务器发送一个SETACTIVE请求。将名为name的脚本设置为活动脚本。成功时返回None。
cmd_starttls(keyfile=None, certfile=None, cert_reqs=_ssl.CERT_NONE, ssl_version=_ssl.PROTOCOL_SSLv23, ca_certs=None, ciphers=None)
向sieve服务器发送一个STARTTLS请求。keyfile和certfile目前被忽略。成功时,与sieve服务器的连接现在是加密的。返回值与cmd_capabilities相同,这可能自连接首次打开以来已更改。
keyfile、certfile、cert_reqs、ssl_version、ca_certs和cipher参数的含义与(并直接传递给)ssl.wrap_socket相同。
login_plain(username, authuser, password)
使用PLAIN认证方案登录sieve服务器。username是要访问的用户的用户名。authuser是要认证的用户名,password是该用户的密码。
异常
BaseException
所有由managesieve3引发的异常的基类。
ServerResponseNo
服务器发送了一个意外的NO响应。有关详细信息,请参阅RFC-5804。
可用的字段有
名称 |
描述 |
name |
当服务器返回NO响应时正在执行的RFC-5804命令的名称。 |
code |
NO响应中返回的代码。这是一个可能长度为1的层次结构响应代码列表。 |
text |
如果有的话,返回可读文本错误消息。 |
results |
如果有的话,返回响应的文本正文。 |
ServerResponseBye
筛选服务器发送了BYE响应。有关详细信息,请参阅RFC-5804。
可用的字段有
名称 |
描述 |
name |
服务器返回BYE响应时正在执行的RFC-5804命令名称。 |
code |
BYE响应中返回的代码。这是一个包含层次响应代码的列表(可能长度为1)。 |
text |
如果有的话,返回可读文本错误消息。 |
results |
如果有的话,返回响应的文本正文。 |
ServerProtocolError
客户端代码在向筛选服务器通信时检测到协议错误。
变更日志
1.1 2016-10-27 Eric V. Smith
移除设置RPM名称的hack(问题#4)。
始终使用setuptools(问题#3)。
将额外的ssl.wrap_socket()参数添加到starttls()中。
1.0 2015-06-02 Eric V. Smith
初始发布。
实现了所有RFC-5804命令。
包含命令解析的广泛测试套件。我真的需要创建一个模拟服务器来测试套接字处理和STARTTLS。
项目详情
下载文件
下载您平台上的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。
源分发
构建分发
managesieve3-1.1.tar.gz的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7c43f23d8d0c83b6aaae93a0f661cef9c4657bbc90cc7c9cf37e775150c021ab |
|
MD5 | 707cf4d7cec1620005b10992e2fec8a2 |
|
BLAKE2b-256 | a77cf8f5ad82e73c6471048f10661b3abd0671bb15b62587c547eabbf477edeb |
managesieve3-1.1-py2.py3-none-any.whl的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | 1cc6241cb4217b7191820fa0554efb67702c4501db63ddec7e9271e5c58c9a78 |
|
MD5 | bb150baf7bfcb2ad68232216a612f98f |
|
BLAKE2b-256 | 24c1a09d4847a59e8ac3dc950b5b88b6d23ce789f431acbe3b1b4ed9a5fa3bd1 |