Я тестирую систему уведомлений по электронной почте с python и selenium с mailgun API.
все работает хорошо, за исключением того, что изображения не отображаются в gmail, я обнаружил, что в gmail есть проблемы со ссылками на внешние изображения.
Так что в настоящее время я прикрепляю все изображения в самом письме и отправляю с ссылками CID, чтобы изображения отображались в html. В моем конце HTML показывает нормально с cid, но когда электронное письмо отправлено, src CID удаляется, больше не присутствует.
код селена
attachlist = []
for attr in driver.find_elements_by_xpath('//table[@id="mainTable"]/tbody/tr[contains(@id, "cell_")]'):
imgN = uuid.uuid4().hex
imgattr = attr.find_element_by_xpath('.//td[4]/a[1]/img[1]')
imglink = imgattr.get_attribute('src')
r = requests.get(imglink, stream=True)
if r.status_code == 200:
with open(str(imgN)+'.jpg', 'wb') as f:
r.raw.decode_content = True
shutil.copyfileobj(r.raw, f)
attachlist.append(('attachment', open(str(imgN)+'.jpg', 'rb')))
driver.execute_script('arguments[0].setAttribute("src","cid:{}");'.format(str(imgN)+'.jpg'), imgattr)
#driver.execute_script('arguments[0].setAttribute("alt", "SpaceImage");', imgattr)
driver.execute_script('arguments[0].setAttribute("style", "display: block");', imgattr)
driver.execute_script('arguments[0].removeAttribute("load_src");', imgattr)
elem = driver.find_element_by_xpath('//table[@id="mainTable"]')
resp = elem.get_attribute('innerHTML')
resp = "<<!DOCTYPE html><html><head><title>Title of the document</title></head><body>"+str(resp)+"</body></html>"
r = requests.post(
"https://api.mailgun.net/v3/mysandbox.mailgun.org/messages",
auth=("api", "my-key"),
files=attachlist,
data={"from": "mailgun@mysandbox.mailgun.org",
"to": ["recipient1@gmail.com", "recipient@gmail.com"],
"subject": "the subject",
"text": "The text",
"html": resp}
)
здесь я получаю таблицу, меняю src изображений с помощью javascript, затем заключаю эту таблицу в html и отправляю ее со всеми вложениями.
источник изображений перед отправкой по электронной почте
<img src="cid:7545abfbeec84eff98a82a3bb79baea1.jpg" border="0" name="img_preview" width="72" style="display: block">
![enter image description here](https://i.stack.imgur.com/FbUvQ.png)
Вот это после того, как я отправляюэлектронная почта, src уходит в Gmail
<img name="m_-3792568815060333898_img_preview" style="display:block" width="72" border="0">
![enter image description here](https://i.stack.imgur.com/4X8Fq.png)
см. вложения есть, но изображение src исчезает в gmailкоторый ссылается на CID
![enter image description here](https://i.stack.imgur.com/9L0rh.png)
Что здесь происходит? Что я делаю не так?
Спасибо за чтение, Желаю вам чудесного дня:)