我正在编写一个 web 应用程序,用于在 python 中使用asana集成处理客户/订单。
对于已注册的传入订单,发票创建为 .pdf。我想使用 mandrill 将这个文件作为电子邮件附件发送到 asana,因为 asana python API 还没有提供附件。
因为 mandrill 想要将附件的内容作为 base64 编码的字符串,所以我使用这个函数创建了 pdf 的二进制文件:
def binaryFile(self, pathToFile):
binary_obj = xmlrpclib.Binary( open(pathToFile).read() )
return binary_obj
连同文件的路径,我把它扔到 mandrill 中,如下所示:
'attachments': [{'content': binaryFile,
'name': pathOfFile,
'type': 'application/pdf'}]
当我尝试发送整个内容时,这就是我得到的:
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site- packages/mandrill.py", line 1215, in send
return self.master.call('messages/send', _params)
File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/mandrill.py", line 131, in call
params = json.dumps(params)
OverflowError: Overlong 3 byte UTF-8 sequence detected when encoding string
谁能暗示我做错了什么?
谢谢你。