2016-11-15 180 views
1

我想用自動生成的pdf文件發送一封電子郵件作爲使用MailGun的附件,但是我從請求庫中得到一個錯誤。由於我使用與示例中完全相同的代碼,所以這讓我很瘋狂。用mailgun(python)發送帶附件的電子郵件時出錯

我得到這個錯誤:列表對象有沒有屬性「更新」

這是我的代碼:

# Generation of the pdf file   
pdf = StringIO.StringIO() 
pisa.CreatePDF("<Some html code>", dest=pdf, encoding='utf8') 

# Sending the email 

requests.post("https://api.mailgun.net/v3/<MY_DOMAIN>/messages", 
     auth=("api", "<MY_API_KEY>"), 
     files = [("attachment", pdf.getvalue())], 
     data={"from": "[email protected]", 
       "to": ["Jhon Doe", "[email protected]"], 
       "subject": "Hello", 
       "text": "Trying to send an attachment!"}) 

如果刪除了文件行它的工作原理,但我需要發送附件。 我試過改變我發送的文件的種類。我也試過一些更簡單的東西:

files = [("attachment", "Bla, bla bla")] 

但我得到的錯誤是關於該行的格式(列表)。

請幫忙嗎?

回答

2

後置參數「files」必須是字典!

試試這個:

# Generation of the pdf file   
pdf = StringIO.StringIO() 
pisa.CreatePDF("<Some html code>", dest=pdf, encoding='utf8') 

# Sending the email 
requests.post("https://api.mailgun.net/v3/<MY_DOMAIN>/messages", 
     auth=("api", "<MY_API_KEY>"), 
     files={"attachment": pdf.getvalue()}, 
     data={"from": "[email protected]", 
       "to": ["Jhon Doe", "[email protected]"], 
       "subject": "Hello", 
       "text": "Trying to send an attachment!"}) 

更多的相關信息有關與請求庫可以在這裏找到上傳文件:http://docs.python-requests.org/en/master/user/quickstart/#post-a-multipart-encoded-file

+0

感謝。我確信我嘗試了這個解決方案,但似乎我沒有。現在我再次嘗試,它的工作原理。 –