用Python编写MIME消息

2024-09-27 17:59:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我只想使用createAttachment方法将csv文件附加到SDM(ServiceDesk Management)中的请求。Zeep被用作SOAP客户端。我总是在“超出政策限制”上出错,所有的讨论板都提到10多年前的技术,或者使用其他语言的代码,这对我来说很难理解。到目前为止,我已经尝试从电子邮件模块中实现一些MIME内容,但也不确定如何将其用于我的目标

下面是一些关于我得到的错误的详细信息以及解决方案。主要问题是,我无法找到任何方法使示例解决方案适应我的python代码

[有关createAttachment方法的文档(以及相关错误)][1]

无法执行该操作,超出了策略限制

症状: 使用createAttachment()web服务方法将文档附加到现有请求或事件时,您会收到此错误,即使附件的web服务策略设置设置设置为-1(无限制),这是现成的默认设置。当收到的SOAP消息中没有附加文件时,调用web服务方法时可能会收到此错误。在调用createAttachment()web服务方法之前,必须将至少一个文件附加到SOAP消息

解决方案: 将SOAP实现设置为支持直接Internet消息封装(DIME),并在调用createAttachment()方法之前使用DIME支持手动附加要上载的文件

您可以参考$NX\u ROOT\samples\sdk\webvc\java\test3\u attachments目录中有关如何支持DIME的示例

代码:

#trying to use MIME here, but not sure how to send the 'message' using the 
#createAttachment method
message = MIMEMultipart()
filename = "not_in_sdm.csv"
attachment = open("results\\not_in_sdm.csv", "rb")
p = MIMEBase('application', 'octet-stream')
p.set_payload((attachment).read())
encoders.encode_base64(p)
p.add_header(
"Content-Disposition",
f"attachment; filename= {filename}",
)

message.attach(p)

client.service.createAttachment(
        sid=sid,
        repositoryHandle=str(repoID),
        objectHandle="cr:472066",
        description="in axonius but not sdm",
        fileName="results\\not_in_sdm.csv"
    )

Tags: 文件csv方法代码inweb消息message

热门问题