4

asana統合を使用して Python で顧客/注文処理用の Web アプリを作成しています。

登録された受注の場合、請求書は .pdf として作成されます。asana python API はまだ添付ファイルを提供していないため、このファイルを mandrill を使用して電子メールの添付ファイルとして asana に送信したいと考えています。

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

私が間違っていることを誰が示唆できますか?

ありがとうございました。

4

1 に答える 1