[英]Outlook API email attachment issue
我試圖在我的python代碼中使用Outlook的REST API代表已經給我同意的用戶發送電子郵件。
我能夠使用帶有以下有效負載的/ me / sendmail節點成功發送文本電子郵件:
email_payload = {
"Message": {
"Subject": email_subject,
"Body": {
"ContentType": "Text",
"Content": email_body
},
"ToRecipients": [
{
"EmailAddress": {
"Address": to
}
}
]
}
}
但是,在嘗試添加附件(基於他們的文檔)時,我遇到了一些問題:
email_payload["Message"]["Attachments"] = [
{
"ContentType": "application/pdf",
"Name": "{0}".format("something.pdf"),
"ContentBytes": base64.b64encode(attachment.read())
}
]
問題包括415響應狀態代碼,其中包含以下內容:{u'error':{u'message':在嘗試閱讀郵件時發現了u'A缺失或空內容類型標題。 內容類型標題是必需的。',u'code':u'RequestBodyRead'}}
在他們的文檔中找不到任何相關內容。 希望有人能賜教:)
對於其他任何有此類問題的人,這里是上下文和修復:
最初,因為我只發送純文本電子郵件,所以我的請求標題如下所示:
request_headers = {
'Authorization': "Bearer {0}".format(token),
}
而實際要求:
api_response = requests.post(
request_url,
json.dumps(body),
headers=request_headers
)
你可能已經注意到我沒有在我的標題中發送任何內容類型(不知道為什么),但是到目前為止一切順利,直到我決定添加附件。
好像我的request_headers也包含Content-Type,一切都會好起來的:
request_headers = {
'Authorization': 'Bearer {0}'.format(refreshed_token),
'Content-Type': 'application/json'
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.