2016-11-15 1 views
1

Ich versuche, eine E-Mail mit einer automatisch generierten PDF-Datei als Anhang mit MailGun zu senden, aber ich erhalte einen Fehler von der Bibliothek Anfragen. Es macht mich verrückt, weil ich genau den gleichen Code wie in den Beispielen verwende.Fehler beim Senden von E-Mails mit Anhängen mit mailgun (python)

ich diesen Fehler: List-Objekt hat kein Attribut ‚update‘

Dies ist mein Code:

# 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!"}) 

Wenn ich entfernen die Dateien Zeile es funktioniert, aber ich brauche die Anlage zu senden. Ich habe versucht, die Art der Datei zu ändern, die ich sende. Ich habe auch etwas einfacher versucht:

aber der Fehler, den ich bekomme, ist über das Format (Liste) dieser Linie.

Irgendwelche Hilfe bitte?

Antwort

2

Der Post-Parameter "Dateien" muss ein Diktat sein!

Try this:

# 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!"}) 

Weitere Informationen zu Dateien mit den Anfragen Hochladen Bibliothek finden Sie hier: http://docs.python-requests.org/en/master/user/quickstart/#post-a-multipart-encoded-file

+0

Dank. Ich war mir sicher, dass ich diese Lösung versucht habe, aber es scheint, dass ich es nicht getan habe. Jetzt habe ich es erneut versucht und es funktioniert. –