Different email clients choose to render multipart/mixed messages differently.
Most customers prefer to display each part (in the "multipart" message) inline - in the order in which they were added to the email. However, if the image is mentioned in the text/html , most clients do not display this image later later as part of the "nesting all parts" process.
Apple Mail differs on OSX and iOS because they will display each part of the multipart/mixed message in the order in which they were included, regardless of any internal links between HTML and images. This will cause your images to appear once in your HTML document and again at the end of the message where they were automatically added.
The solution is to group your HTML and image files into one related part. i.e:.
from django.core.mail import EmailMultiAlternatives from email.mime.image import MIMEImage from email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText
bradley.ayers
source share