Уже несколько дней я пытаюсь отправить сообщение с текстом htlm встроенным изображением и приглашением отформатировать ics безуспешно.
Я могу отправить текст html со встроенным изображением без каких-либо проблем.Я также могу отправить HTML-текст с приглашением.НО, когда я пытаюсь прикрепить изображение, оно не появляется в полученном сообщении.
Спасибо за вашу помощь и совет
Переменные для представления HTML-текста и приглашения ICS предназначены дляпример
ical = """
BEGIN:VCALENDAR
PRODID:pyICSParser
VERSION:2.0
CALSCALE:GREGORIAN
METHOD:REQUEST
BEGIN:VEVENT
DTSTART:20181021T064734Z
DTEND:20181021T074734Z
DTSTAMP:20181020T064734Z
ORGANIZER;CN=DJR:mailto:me@me.com
UID:FIXMEUID20181020T064734Z
ATTENDEE;CUTYPE=INDIVIDUAL;ROLE=REQ-PARTICIPANT;PARTSTAT=ACCEPTED;RSVP=TRUE ;CN=me@me.com;X-NUM-GUESTS=0: mailto:me@me.com
CREATED:20181020T064734Z
DESCRIPTION: test invitation
LAST-MODIFIED:20181020T064734Z
LOCATION: mon bureau
SEQUENCE:0
STATUS:CONFIRMED
SUMMARY:test 20181021 @ 06:47
TRANSP:OPAQUE
END:VEVENT
END:VCALENDAR
"""
BodyTxt = """
<html>
<head>
</head>
<body>
Txt blablabla.<br>
<br />
<b>
<img style="width: 92.50px; height: 60.00px; margin-left: 0.00px; margin-top: 0.00px;" src="cid:{}" >
</b>
</body>
</html>
"""
ImageName = 'LogoGIE.png'
FileName = './{}'.format(ImageName)
InternalImageName = '{}@{}'.format(ImageName, uuid.uuid4() )
img_data = open(FileName, 'rb').read()
MailMessage = EmailMessage()
MailMessage = MIMEMultipart('related')
MailMessage["Subject"] = "ICS Test"
msg_alternative = MIMEMultipart('alternative')
MailMessage.attach(msg_alternative)
msg_text = MIMEText (BodyTxt.format(InternalImageName), 'html')
msg_alternative.attach(msg_text)
filename = "invite.ics"
ics_part = MIMEBase('text', 'calendar', **{'method' : 'REQUEST', 'name' : filename})
ics_part.set_payload( (ical.replace('\n','\r\n')).encode('utf-8') )
ics_part.set_type('text/calendar; charset=UTF-8; method=REQUEST; component = VEVENT')
email.encoders.encode_base64(ics_part)
ics_part.add_header('Content-Type', 'text/calendar')
ics_part.add_header('charset', 'UTF-8')
ics_part.add_header('component', 'VEVENT')
ics_part.add_header('method', 'REQUEST')
ics_part.add_header('Content-class', 'urn:content-classes:appointment')
ics_part.add_header('Content-ID', 'calendar_message')
ics_part.add_header('Content Description', filename)
ics_part.add_header("Filename", filename)
ics_part.add_header("Path", filename)
msg_alternative.attach(ics_part)
msg_img = MIMEImage(img_data, 'png')
msg_img.add_header ('Content-ID', '<{}>'.format(InternalImageName))
msg_img.add_header ('Content-Disposition', 'inline', filename=InternalImageName)
MailMessage.attach(msg_img)
smtp_server = smtplib.SMTP("my_smtpsrv", 25)
smtp_server.sendmail( 'me@me.com', 'me@me.com', MailMessage.as_string() )
smtp_server.close()