Ich verwende Python-Anfragen, um eine Anfrage zu stellen. Wenn der Attachment-Parameter einige nicht-ASCII-Zeichen hat, wird eine Exception ausgelöst, in anderen Fällen, in denen nur Ascii-Daten existieren, ist alles in Ordnung.Python fordert Probleme mit nicht ASCII-Dateinamen an
you can see the exception here
response = requests.post(url="https://api.mailgun.net/v2/%s/messages" % utils.config.mailDomain,
auth=("api", utils.config.mailApiKey),
data={
"from" : me,
"to" : recepients,
"subject" : subject,
"html" if html else "text" : message
},
files= [('attachment', codecs.open(f.decode('utf8'))) for f in attachments] if attachments and len(attachments) else []
)
EDITS: die Dateinamen mit UTF-8 Nach der Decodierung, ich eine Ausnahme nicht jedoch die Datei angehängt ist, nicht erhalten. ich gedebuggt Anfragen mit einer Datei mit nur ASCII-Zeichen im Namen angebracht wird, und die Request-Header-Anfragen bauen ist:
{'Content-Type': None, 'Content-Location': None, 'Content-Disposition': u'form-data; name="attachment"; filename="Hello.docx"'}
Dies gelingt, bin ich die E-Mail mit den Anlagen zu bekommen.
Wenn jedoch eine Datei mit hebräischen Buchstaben verwenden, die Kopfzeile der Anfrage ist:
{'Content-Type': None, 'Content-Location': None, 'Content-Disposition': 'form-data; name="attachment"; filename*=utf-8\'\'%D7%91%D7%93%D7%99%D7%A7%D7%94.doc'}
ich die Mail bekommen, aber ohne die Datei angefügt. Irgendwelche Ideen?
Zeigen Sie uns die Fehlerspur. Das von Ihnen angegebene Bild zeigt, dass versucht wird, eine Kopfzeile mit unerwarteten Zeichen zu erstellen. Aber das kann ein Fall für mehrere Werte sein, die Sie in Ihrem Code haben, und Stacktrace würde uns mehr erzählen. Idealerweise sollten Sie ein kurzes Stück Code angeben, das läuft und das Problem aufzeigt. Derzeit ist es nicht möglich, viel zu reproduzieren. –