0
基本的には、添付ファイル(この場合はepub)付きの電子メールを送信するようにします。Sendgirdを使用した電子メールの添付
今私はsendgridライブラリを使用してメールを送信し、sendgridに添付ファイルを送信するにはbase64でエンコードし、sendgridサーバーに送信する必要があります。
しかし、jsonはバイトタイプをサポートしていないので、私のエンコードされたファイルを文字列に変換する必要があります。私は長い間試してみましたが、何が間違っているのか分かりませんが、base64でエンコードされた文字列と関係があります。
私のコードの気圧は一種の次のようになります。
#Encoding file
with open(filename, 'rb') as f:
encoded = base64.b64encode(f.read())
attachment = Attachment()
#Is this done correctly?
attachment.content = str(encoded)
attachment.type = "application/epub+zip"
attachment.filename = filename
email = Mail(from_email, subject, to_email, content)
email.add_attachment(attachment)
response = sg.client.mail.send.post(request_body=email.get())
誰かが助けることができますか?
いただきましたあなたのエラーメッセージが表示されて
attachment.content = str(encoded)
この行を交換し、それは完全なコードではありません。 – user1767754@ user1767754これは400の不正リクエストです。それはすべてのコードではありませんが、動作しない部分です。残りのコードは無関係です。これらのコード行の誤りを正確に特定しました。 – BloodViolet
テスト環境はありませんが、文字列に変換する代わりに、bytearrayに変換してみてください。 – user1767754