У меня есть скрипт python, который отправляет многостраничное электронное письмо с вложениями text, html и ics. Идея заключается в том, что современный почтовый клиент отобразит часть HTML и предложит добавить событие в календарь пользователя.Отправка на Exchange: как отключить отключение Lossy Преобразование HTML в RTF?
код выглядит следующим образом:
import smtplib
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
from icalendar import Calendar, Event, UTC, vText, vCalAddress
# ... set up calendar invite, render text and html templates ...
msg = MIMEMultipart('alternative')
msg_text = MIMEText(body_text, 'plain', 'utf-8')
msg_html = MIMEText(body_html, 'html', 'utf-8')
meeting = MIMEText(cal.as_string(), 'calendar;method=REQUEST', 'utf-8')
meeting.set_param('method', 'REQUEST')
meeting.set_param('name', 'meeting.ics')
meeting.add_header('Content-class', 'urn:content-classes:calendarmessage')
# ... set up various message attributes: to/from/subject ...
msg.add_header('Content-class', 'urn:content-classes:calendarmessage')
msg.attach(msg_text)
msg.attach(msg_html)
msg.attach(meeting)
s = smtplib.SMTP(smtp_server)
s.sendmail(sender, send_to, msg.as_string())
Это работает: я получаю сообщение, оно отображается в виде HTML, и я легко могу добавить событие в свой календарь в Outlook, и Mac Mail. Однако HTML не работает. Вот предательский в HTML:
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
Вот что я знаю, до сих пор:
- Если я бросаю календаря вложения, HTML, делает это через без преобразования.
- Я могу получить приглашение только на календарь, если я приложу его к последнему сообщению.
Итак, что-то о том, что приглашение к календарю приглашено, приводит к тому, что Exchange испортит мое сообщение в формате HTML. Может быть, есть заголовок, который я могу добавить в сообщение или HTML, чтобы спросить Microsoft, пожалуйста, не конвертируйте мой HTML в RTF?
У вас есть ссылка на это? Хотите узнать больше об этом, но не можете найти его в сети. – pkrish
См. Обновление выше. –
Спасибо. Проблема, с которой я столкнулся, заключается в том, что обменный сервер заменяет мой html своим собственным, с этим комментарием . Любая идея, как предотвратить это, не мешая настройкам сервера Exchange. – pkrish