Пожалуйста, рассмотрите этот пример из документации Mailgun, расположенной здесь: http://documentation.mailgun.com/api-sending.html#examples
def send_complex_message():
return requests.post(
"https://api.mailgun.net/v2/samples.mailgun.org/messages",
auth=("api", "key-3ax6xnjp29jd6fds4gc373sgvjxteol0"),
files=MultiDict([("attachment", open("files/test.jpg")),
("attachment", open("files/test.txt"))]),
data={"from": "Excited User <[email protected]>",
"to": "[email protected]",
"cc": "[email protected]",
"bcc": "[email protected]",
"subject": "Hello",
"text": "Testing some Mailgun awesomness!",
"html": "<html>HTML version of the body</html>"})
Это не работает для меня. Когда письмо приходит, оно имеет только одно вложение. Я использую объект MultiDict в бутылке python. Я открыл только словарь файлов, чтобы изучить его следующим образом:
files=MultiDict([("attachment", ("file1.txt", "text file 1"),
("attachment", ("file2.txt", "text file 2")])
Когда вы делаете files.values(), у него есть только одна запись «file2.txt». Это имеет смысл. Я вижу такое же поведение, если я также пытаюсь добавить () запись. если «Ключ» тот же (в данном случае «вложение»), он перезаписывает существующую запись.
Если я даю ему уникальные ключи, такие как вложение-1 и вложение-2, API принимает сообщение, однако почта доставляется без вложений.
Итак, я предполагаю, что мои вопросы:
1) Есть ли разница в объекте MultiDict в бутылке, которая вызывает сбой? Казалось бы, нельзя иметь несколько записей в словаре с одним и тем же ключом?
2) Есть ли что-то недокументированное, что я должен сделать, чтобы отправить несколько файлов в mailgun? или это невозможно сделать?