You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Zimbra SOAP API下载日历事件中的二进制附件?

获取Zimbra日历事件二进制附件的正确方法

方法一:在GetAppointmentRequest中直接获取附件内容

你之前调用GetAppointmentRequest仅拿到附件元数据,只需在请求中添加参数即可让接口返回二进制附件内容:

  • 请求需包含content参数并设为1,同时指定目标附件的part编号(即你获取到的part字段值,比如示例中的2)
  • 示例SOAP请求结构:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <context xmlns="urn:zimbra">
      <authToken>你的认证令牌</authToken>
    </context>
  </soap:Header>
  <soap:Body>
    <GetAppointmentRequest xmlns="urn:zimbraCalendar">
      <id>日历事件的ID</id>
      <content>1</content>
      <part>2</part>
    </GetAppointmentRequest>
  </soap:Body>
</soap:Envelope>
  • 返回结果中,对应part的附件内容会以Base64编码形式嵌入,解码后即可得到二进制文件。

方法二:使用GetAttachmentRequest单独获取附件

若无需重新拉取整个事件数据,可单独调用GetAttachmentRequest接口:

  • 请求需传入日历事件ID(作为itemId)和附件的part编号
  • 示例SOAP请求结构:
<soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope">
  <soap:Header>
    <context xmlns="urn:zimbra">
      <authToken>你的认证令牌</authToken>
    </context>
  </soap:Header>
  <soap:Body>
    <GetAttachmentRequest xmlns="urn:zimbraMail">
      <itemId>日历事件的ID</itemId>
      <part>2</part>
    </GetAttachmentRequest>
  </soap:Body>
</soap:Envelope>
  • 注意:该接口属于urn:zimbraMail命名空间,需确保请求的命名空间配置正确。

调用GetMsgRequest报错的原因

GetMsgRequest是用于获取邮件消息的接口,日历事件属于日历项(Appointment)而非邮件消息,直接传入日历ID会因接口用途不匹配触发服务器错误。

内容的提问来源于stack exchange,提问作者Jeff McKay

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 05:38:13