Tôi đang sử dụng yêu cầu python để đăng yêu cầu. khi tham số đính kèm có một số ký tự ascii không phải là ngoại lệ được nêu ra, trong những trường hợp khác chỉ có dữ liệu ascii tồn tại, mọi thứ đều ổn.python yêu cầu các vấn đề với tên tệp ascii không
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 []
)
CHỈNH SỬA: Sau khi giải mã tên tập tin với utf8, tôi không nhận được một ngoại lệ tuy nhiên các tập tin không được đính kèm. tôi sửa lỗi yêu cầu với gắn một tập tin với các nhân vật chỉ ascii trong tên của nó, và yêu cầu tiêu đề yêu cầu xây dựng là:
{'Content-Type': None, 'Content-Location': None, 'Content-Disposition': u'form-data; name="attachment"; filename="Hello.docx"'}
này thành công, tôi nhận được mail với các file đính kèm.
Tuy nhiên, khi sử dụng một tập tin với các nhân vật tiếng Hebrew, header của request là:
{'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'}
tôi nhận được thư nhưng không có tập tin gắn liền với nó. Bất kỳ ý tưởng?
Hiển thị cho chúng tôi dấu vết lỗi. Hình ảnh bạn cung cấp cho thấy, có một số nỗ lực để tạo ra một tiêu đề với các ký tự không mong muốn. Nhưng điều này có thể là một trường hợp cho nhiều giá trị bạn có trong mã của bạn và stacktrace sẽ cho chúng tôi biết thêm. Lý tưởng nhất là bạn nên cung cấp đoạn mã ngắn, chạy và hiển thị vấn đề. Hiện tại không thể tái sản xuất nhiều. –