0

I'm trying to send an email with an inline image. I've set the Content-ID and added a <img src="cid:image1@myemail"> to my html. The image arrives properly as an attachment, but mail clients show a broken image.

What am I doing wrong? The full source of the message is below:

Return-Path: <igal@lucee.org>
Received: from 128.149.80.230
        by smtp.googlemail.com with ESMTPSA id i7sm9313707paf.9.2016.09.01.11.15.59
        for <igal@lucee.org>
        (version=TLS1 cipher=ECDHE-RSA-AES128-SHA bits=128/128);
        Thu, 01 Sep 2016 11:15:59 -0700 (PDT)
Date: Thu, 1 Sep 2016 11:15:54 -0700 (PDT)
From: igal@lucee.org
To: igal@lucee.org
Message-ID: <489410968.5.1472753755600.JavaMail.Admin@IS16>
Subject: [Test] LDEV-545 html 5.0.0.200
MIME-Version: 1.0
Content-Type: multipart/mixed; 
    boundary="----=_Part_4_247149912.1472753754816"
X-Mailer: Lucee Mail

------=_Part_4_247149912.1472753754816
Content-Type: multipart/alternative; 
    boundary="----=_Part_3_913848408.1472753754815"

------=_Part_3_913848408.1472753754815
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit

Text Message

------=_Part_3_913848408.1472753754815
Content-Type: text/html; charset=UTF-8
Content-Transfer-Encoding: 7bit

Inline Image: <img src="cid:image1@myemail">

------=_Part_3_913848408.1472753754815--

------=_Part_4_247149912.1472753754816
Content-Type: image/jpeg; name=test-image.jpg
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=test-image.jpg
Content-ID: image1@myemail

/9j/4AAQSkZJRgABAQEAYABgAAD/4QBoRXhpZgAATU0AKgAAAAgABAEaAAUAAAABAAAAPgEbAAUA
AAABAAAARgEoAAMAAAABAAIAAAExAAIAAAARAAAATgAAAAAAAABgAAAAAQAAAGAAAAABcGFpbnQu
bmV0IDQuMC4xMAAA/9sAQwAKBwcJBwYKCQgJCwsKDA8ZEA8ODg8eFhcSGSQgJiUjICMiKC05MCgq
NisiIzJEMjY7PUBAQCYwRktFPko5P0A9/9sAQwELCwsPDQ8dEBAdPSkjKT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09/8AAEQgAIgBDAwEiAAIRAQMRAf/E
AB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAE
EQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZH
SElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1
tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEB
AQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXET
IjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFla
Y2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG
x8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A9mooqvNfQW95bWsj
kTXO7ylwfm2jJ57cU0m9gLFFUdK1qx1uGWXT5xMkUhif5SpDDtggetGnazY6sbkWM4l+yymGUgEB
WHXk9fqKt0pxveL038hcyL1FUdL1ix1mxN5YTrLbhmUvgjBHXrVaHxRpk80aRSzMkjiOOf7PJ5Ls
TgASbdpyenPNP2NS7XK9N9Ng5l3NeisuPxFZTXr2sK3cskc3kOyWkrIr9wXC7RjPXNalTKEofErA
mnsFFFFQMKwtX/5Gvw/9bj/0XW7RWlOfI7+TX3poTVzzLSGutB0y3uLBCzawJbUYHC3PnP5bn22s
2fZBV4xto9l4g03TR/pEs9vY22TglmgRdxPrjcxPtXfUV3SzDmk5OO++u+qav6JWMlSsrXOANlf2
iavpC2cdl/aViWtIYp/MG+NAjAHaOSu38iauyeI0a50eHSNRjRZJooJdOMI82Nf4s55XAGOldlij
AznHPrUPGRl8cP6tbqn2XnvrqP2bWzOK0C+trfXtTim1xLd31SULYsYx5pOADyN3J9D2rtqTFLXP
XrKrLmSt/Xoi4x5VYKKKKwKCiiigAooooAKKKKACiiigAooooA//2Q==
------=_Part_4_247149912.1472753754816--
isapir
  • 21,295
  • 13
  • 115
  • 116
  • Would be a great idea to show what code you're using to send the email. – Darren Wainwright Sep 01 '16 at 18:25
  • The code is language specific and IMO is irrelevant. It is written in a JVM language and is translated to Java. The important part is the end result which I posted above. – isapir Sep 01 '16 at 18:27
  • Did you write it? Are you using a library to send an email? Are you sending email through an email program? There isn't enough information in what you have provided to say WHY it's being sent as an attachment. Sure, we can see your email content but that doesn't help figure WHY – Darren Wainwright Sep 01 '16 at 18:28
  • It's using several Java libraries. I believe that there is a bug somewhere, which I want to fix, so again -- the source code on my end is irrelevant. If someone with good knowledge of mime messages will look at the message he might know where the problem is. – isapir Sep 01 '16 at 18:30
  • Something on a related answer says to put your Content-ID value in <> - I.E `Content-ID: ` - see comments on answer here http://stackoverflow.com/questions/4018709/how-to-create-an-email-with-embedded-images-that-is-compatible-with-the-most-mai – Darren Wainwright Sep 01 '16 at 18:36
  • Yes, that might the right track. I sent myself an email from a regular mail client with the same attachment and I do see the angular brackets there. I need to test that, thanks. You can post that as an answer and if it is the issue then I will accept it after I confirm that. – isapir Sep 01 '16 at 18:42
  • That's ok thanks. I just guessed/googled; feel free to add and accept your own answer once you nail the issue. – Darren Wainwright Sep 01 '16 at 18:42

2 Answers2

0

I found the problem. It is missing Content-Type: multipart/related;

isapir
  • 21,295
  • 13
  • 115
  • 116
0

This is an example with the mentioned additional multipart/related wrapper that groups the text/html and image/jpeg parts together. The content is completely base64-encoded. The text/plain version won't contain any images nor should the image files be displayed as attachments separately of their rendering in the html source code:

MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="mime-9d5113858fd03feb"
From: example@example.org
Subject: Test 31.05.2023 13:43:25

--mime-9d5113858fd03feb
Content-Type: multipart/alternative; boundary="mime-41c254769953a354"

--mime-41c254769953a354
Content-Type: text/plain
Content-Transfer-Encoding: base64

RW1iZWRkZWQgSW1hZ2VzIEUtTWFpbCBUZXN0ClRoZSBIVE1MIHZlcnNpb24gb2YgdGhpcyBFLU1haW
wgY29udGFpbnMgdHdvIGVtYmVkZGVkIGljZWJlYXJzLCBidXQgdGhlIHBsYWludGV4dCB2aWV3IGNv
bnRhaW5zIG5vdGhpbmcgYnV0IHRleHQu

--mime-41c254769953a354
Content-Type: multipart/related; boundary="mime-298a97a07d2a42bd"

--mime-298a97a07d2a42bd
Content-Type: text/html
Content-Transfer-Encoding: base64

PGgxPkVtYmVkZGVkIEltYWdlcyBFLU1haWwgVGVzdDwvaDE+CjxwPlRoZSBIVE1MIHZlcnNpb24gb2
YgdGhpcyBFLU1haWwgY29udGFpbnMgdHdvIGVtYmVkZGVkIGljZWJlYXJzLCBidXQgdGhlIHBsYWlu
dGV4dCB2aWV3IGNvbnRhaW5zIG5vdGhpbmcgYnV0IHRleHQuPC9wPjxpbWcgc3JjPSJjaWQ6YThkMm
VkM0BhY2EzNWZmLm1haWwiIHdpZHRoPSIxMDAiIGhlaWdodD0iMTAwIiBzdHlsZT0iYm9yZGVyOnNv
bGlkIDVweCByZWQiIC8+IDxpbWcgc3JjPSJjaWQ6YTA0M2U0N0BhMGFkYWJmLm1haWwiIHdpZHRoPS
IxMDAiIGhlaWdodD0iMTAwIiBzdHlsZT0iYm9yZGVyOnNvbGlkIDVweCByZWQiIC8+IA==

--mime-298a97a07d2a42bd
Content-Type: image/jpeg 
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=icebear.jpeg
Content-ID: <a8d2ed3@aca35ff.mail>

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
--mime-298a97a07d2a42bd
Content-Type: image/jpeg 
Content-Transfer-Encoding: base64
Content-Disposition: inline; filename=icebear2.jpeg
Content-ID: <a043e47@a0adabf.mail>

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


--mime-298a97a07d2a42bd--

--mime-41c254769953a354--

--mime-9d5113858fd03feb--
mch
  • 1,259
  • 15
  • 23