【技术原创】Zimbra-SOAP-API开发指南5——邮件转发
2022-12-22 12:2:13 Author: 嘶吼专业版(查看原文) 阅读量:14 收藏

本文将要继续扩充开源代码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漏洞上进行测试。


文章来源: http://mp.weixin.qq.com/s?__biz=MzI0MDY1MDU4MQ==&mid=2247555448&idx=1&sn=3187320e01c03ed4e1a25e52ef4f4c1f&chksm=e915c942de6240545e724b785fc80d46b4e7a39955f4cf2b44502462b8eb8006b7d253970c45#rd
如有侵权请联系:admin#unsafe.sh