Първо имайте предвид, че Ръководството на потребителя има грешка. Правилният кодов фрагмент трябва да изглежда така:
def send_simple_message():
return requests.post(
"https://api.mailgun.net/v2/YOUR-DOMAIN/messages",
auth=("api", "YOUR-KEY"),
files={"inline":("image", open("/tmp/image.jpg"))},
data={"from": "[email protected]",
"to": ["[email protected]"],
"subject": "Hello",
"text": "Testing some Mailgun awesomness!",
"html": '<html>Inline image here: <img src="cid:image"></html>'})
Параметърът files
трябва да бъде dict
, а не list
, а стойността в dict
трябва да бъде кортеж, който включва името на файла. След това използвате това име на файл като стойност cid:
във вашия HTML.
Що се отнася до вашия въпрос, трябва да разберете, че Mailgun изпраща имейл съобщенията като MIME „multipart/alternative“ съобщение. Цитирайки от съответния стандарт:
... всяка от частите на тялото е "алтернативна" версия на същата информация.
Системите трябва да разпознават, че съдържанието на различните части е взаимозаменяемо. Системите трябва да изберат "най-добрия" тип въз основа на местната среда и предпочитания ...
Така че виждате, вашият имейл четец се държи правилно, когато ви показва само едно от „текст“ или „html“. За да докажете на себе си, че и двата формуляра се изпращат, опитайте да видите източника на имейл съобщението. В Gmail потърсете елемента от менюто „Показване на оригинала“. Във Firefox опитайте „Преглед | Източник на съобщение“ или „Преглед | Основен текст на съобщението като ...“.
Като подател на поща трябва, ако изобщо е възможно, да включите съобщенията си като „текст“ и като „html“ с еквивалентно значение. Като този:
text='''Our sale prices are VERY LOW this weekend.
Visit http://sales.example.com.''',
html='''<html>
<img src="cid:logo.jpg"/>
Our sale prices are <b>very low</b> this weekend.
Visit <a href="http://sales.example.com">our website!</a>
</html>'''
Виждате ли как, без значение коя версия вижда потребителят, той ще получи същото значение, ограничено само от средата, в която гледа съобщението?
Като алтернатива, ако изберете да не изпращате едно и също съобщение и в „текст“, и в „html“, можете да го изпратите само в едното или другото. Ако го изпратите само в „html“, тогава той ще бъде изобразен правилно на повечето съвременни четци на имейл, но ще бъде безсмислен на традиционните четци на имейл. Ако го изпратите само като „текст“, той ще може да се чете от всички четци на имейли, но няма да има функции за обогатен текст: получер, курсив, вградени изображения и т.н.
person
Robᵩ
schedule
02.10.2014