I have looked at several other posts including:
Sending Multipart html emails which contain embedded images
creating a MIME email template with images to send with python / django
These along with the python docs for smtplib and email have gotten me close. I am using the code below to create an email with a simple jpg embedded in it. If I send the email to gmail it will display the embedded image fine but outlook 2013 will not.
import smtplib
from email.MIMEMultipart import MIMEMultipart
from email.MIMEText import MIMEText
from email.MIMEImage import MIMEImage
From = ''
To = ''
msg = MIMEMultipart()
msg['Subject'] = 'image test message'
msg['From'] = From
msg['To'] = To
text = 'This is sample text from me'
html = '''
<html>
<head>
<title> this is a test title </title>
</head>
<body>
<p> Test me <br>
Another line <br>
This is the image you were looking for <img src="cid:test_image"><br>
This will teach you not to click on links in strange <a href="http://purple.com">emails</a>
</p>
</body>
</html>
'''
part1 = MIMEText(text, 'plain')
part2 = MIMEText(html, 'html')
msg.attach(part1)
msg.attach(part2)
img_data = open('image.jpg', 'rb').read()
img = MIMEImage(img_data, 'jpeg')
img.add_header('Content-Id', '<test_image>')
msg.attach(img)
s = smtplib.SMTP('localhost')
s.sendmail(From, To, msg.as_string())
s.quit()
I have checked all the download and security settings in Outlook that I can think of and they are fine. I have also added the sender to the safe-sender's list. I am able to receive other emails created with embedded images using conventional tools in outlook fine. From the reading I have been doing and looking at the source of the received email it appears that outlook doesn't know where to find the image. There are no attachments associated with this email either. Below is what I get when I right-click on the email and view the source.
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii"><title> this is a test title </title>
</head>
<body>
<p> Test me <br>
Another line <br>
This is the image you were looking for <img src="cid:test_image"><br>
This will teach you not to click on links in strange <a href="http://purple.com">emails</a>
</p>
</body>
</html>
I am currently thinking it has something to do with either the content type or I just plain screwed up the code. I think the code is fine as gmail displays the image ok and when I forward it from gmail to outlook the forwarded message is displayed fine.