2017-04-04 11 views
0

私はすでに自分の同意を得ているユーザーのために電子メールを送信するために、PythonコードでOutlookのREST APIを使用しようとしています。 Outlook 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 '}}

ドキュメントでこれに関する何かを見つけることができませんでした。誰かが私を啓発することができます:)

答えて

0

、このような問題を抱えて誰のために願って、ここでの文脈や修正です:

:私はプレーンテキストの電子メールを送信していましたので、

最初は、私のリクエストヘッダには、このように見えました

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' 
     } 
関連する問題