为Sendgrid的Email API编码CSV文件
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为Sendgrid的Email API编码CSV文件相关的知识,希望对你有一定的参考价值。
我正在尝试使用R / Python和Sendgrid的Email API构建客户端报告引擎。我可以发送电子邮件,但我需要做的最后一件事就是附上客户的CSV报告。
我尝试了很多方法,包括base64编码文件和将字符串写入磁盘从R到python,但不是运气。也就是说,似乎我遇到了这个错误:
TypeError:'bytes'类型的对象不是JSON可序列化的
我的代码是:
with open('raw/test-report.csv', 'rb') as fd:
b64data = base64.b64encode(fd.read())
attachment = Attachment()
attachment.content = b64data
attachment.filename = "your-lead-report.csv"
mail.add_attachment(attachment)
令人困惑的是,如果我只是用线替换b64data
attachment.content = 'TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNlY3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gQ3JhcyBwdW12'
发送带附件的电子邮件。
作为参考,我一直在使用:
https://github.com/sendgrid/sendgrid-python
和
并且在我的项目的最后一步之前没有任何问题。
任何帮助将不胜感激。值得注意的是,我的力量在R
,但我通常可以在互联网的帮助下在python
一起破解事物。
在将b64data
分配给attachment.content
之前,您需要将attachment.content
转换为常规字符串。 Sendgrid构建一个JSON有效载荷,它在请求中发送,因此它不知道如何序列化分配给bytestring
的值,在这种情况下是str(b64data,'utf-8')
。
https://github.com/sendgrid/sendgrid-python/blob/master/USAGE.md#post-mailsend
References:
- qazxswpoi
以上是关于为Sendgrid的Email API编码CSV文件的主要内容,如果未能解决你的问题,请参考以下文章
在“nodejs”中使用“@sendgrid/mail”发送“base64”电子邮件“附件”时遇到问题
使用coffeescript流星的SendGrid sgMail.send错误。作为纯JS工作正常
有没有办法只使用 sendgrid API 来构建完整的 sendgrid 订阅表单?
在 Heroku 中使用 Sendgrid 为 Django 应用程序设置电子邮件