本文将要继续扩充开源代码Zimbra_SOAP_API_Manage的功能,通过Zimbra SOAP API修改配置实现邮件转发,分享开发细节。
本文将要介绍以下内容:
添加邮件转发
查看邮件转发的配置
查看文件夹共享的配置
开源代码
Zimbra支持将收到的邮件额外转发至另一邮箱,通过Web界面的操作方法如下:
登录邮箱后,依次选择Preferences->Mail
设置转发邮箱后,点击Save
如果想要转发多个邮箱,可以使用,进行分割,同时转发至两个邮箱的示例:[email protected],[email protected]
接下来,通过抓包的方式分析实现流程,进而使用程序实现这部分功能
抓包获得的soap格式示例:
实现代码示例:
对于清除邮件转发的设置,只需要将邮箱地址设置为空即可
在我们添加邮件转发前,通常需要先获得邮箱转发的配置
通过抓包发现,在访问Web主页面时,如果存在邮件转发的设置,那么返回数据会增加以下内容:
如果不存在邮件转发的设置,返回数据不存在字符zimbraPrefMailForwardingAddress
在程序实现上,访问Web主页面需要添加Cookie,再通过正则表达式筛选出指定的内容即可
实现代码示例:
在上篇文章《Zimbra-SOAP-API开发指南4——邮件导出和文件夹共享》缺少了查看文件夹共享配置的方法,本文作为补充
通过抓包进行分析
发送的url示例:https://
发送的内容示例:
返回的内容示例:
从以上内容可以知道,相关的请求为GetFolderRequest
查看GetFolderRequest的用法:https://files.zimbra.com/docs/soap_api/8.8.15/api-reference/zimbraMail/GetFolder.html
经过前期的积累,这里也可以通过Zimbra SOAP API实现,发送GetFolderRequest,对返回内容进行筛选即可
收件箱存在文件共享的数据内容示例:
在程序实现上,如果返回结果中存在字符
实现代码示例:
在删除文件夹共享的操作时,需要填入zid和Inbox对应的数字2即可
新的代码已上传至github,地址如下:
https://github.com/3gstudent/Homework-of-Python/blob/master/Zimbra_SOAP_API_Manage.py
添加以下四个功能:
AddForward:添加邮件转发
GetForward:查看邮件转发
GetShare:查看文件夹共享
RemoveForward:清除邮件转发的设置
本文扩充了Zimbra SOAP API的调用方法,添加四个实用功能,实现方法和思路也可在XSS漏洞上进行测试。