我有一個python腳本,用於發送帶有文本,html和ics附件的多部分電子郵件。這個想法是,一個現代的電子郵件客戶端將呈現HTML部分,並提供將事件添加到用戶的日曆。發送到Exchange:如何禁用禁用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郵件日曆。但是,HTML被破壞了。下面是在HTML中揭祕:
<meta name="Generator" content="Microsoft Exchange Server">
<!-- converted from rtf -->
以下是我目前所知:
- 如果我把日曆附件,HTML使它通過,無需轉換。
- 如果我最後附加到郵件,我只能獲得日曆邀請。
所以,有關日曆邀請附件的事情導致Exchange搞亂我的HTML郵件。是否有可以添加到郵件或HTML的標題,讓Microsoft向美麗請勿將我的HTML轉換爲RTF?
你有這個引用嗎?想要閱讀更多關於此的信息,但無法在網上找到它。 – pkrish
請參閱上面的更新。 –
謝謝。我遇到的問題是交換服務器正在用自己的html替換掉我的html,這個註釋 <! - 從rtf - >轉換。任何想法如何防止這種干擾交換服務器設置。 – pkrish