Nael is an Avid Reader. No contributions for 2024.
Without a doubt, there will be something to
share on the Community in 2025!
User bio
404 bio not found
Member since Dec 13, 2015
Replies:

I got it to work,

Turns out that angle brackets must be added in the Content-ID header for this to work in Gmail.

do part.Headers.SetAt("<id1>","Content-ID")

It's mentioned in this article , remark by masoudmanson.

https://stackoverflow.com/questions/41946783/gmail-blocking-small-embedd...

Thanks for helping me solve this problem! I appreciate it very much.

Hi,

I took the code from the article, still the same problem.. in Outlook I get a nice embedded pic,

In Gmail- the pic is attached.   

It seems there is a specific problem with Gmail displaying embedded images.

Did you manage to get a mail with embedded image to display correctly in Gmail?

I also tried the base64 method, and that also worked correctly only when the mail was opened in Outlook.

Method 1:

Set tmpEmail=##class(%Net.SMTP).%New()
  Set tmpEmail.smtpserver="xyz"
  Set msg=##class(%Net.MailMessage).%New()
  Set msg.From="from.."
  Set msg.Charset="Windows-1255"
  D msg.To.Insert("to..")
  Set msg.Subject="testing"
  set msg.IsHTML=1   
  set msg.MultiPartType="related"   
  do msg.AttachFile("c:\xyzxyz\","a.png")
  set part=msg.Parts.GetAt(1)
  set part.ContentType="image/png"
  set part.InlineAttachment=1 // otherwise, the default is attachment. graphic inside html
  do part.Headers.SetAt("id1","Content-ID")   
  do msg.TextData.Write("<b>Hello< / b>, </b><font color='red'>World<font color='red'></font>!")
  do msg.TextData.Write("<br/><img src='cid:id1'>")
  s status= tmpEmail.Send(msg)
 

Method 2 base64

  Set tmpEmail=##class(%Net.SMTP).%New()
  Set tmpEmail.smtpserver="xyz"
  Set msg=##class(%Net.MailMessage).%New()
  Set msg.From="from.."
  Set msg.Charset="Windows-1255"
  D msg.To.Insert("to..")
  Set msg.Subject="testing base64"
  set msg.IsHTML=1   
  set msg.MultiPartType="related"
  set stream=##class(%GlobalBinaryStream).%New()
  do stream.Write($system.Encryption.Base64Decode("iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAACXBIWXMAAAsTAAALEwEAmpwYAAADUUlEQVR42lWTWUwTURSGaUtIKY5QweISTUzceDGu0Rj1xURjTNQEE+ODGn0hPhBEQdqZztahBbrAtFih1Fprh9IBiVLLErZSU7BUoS7VqNH44ovx0S0ovdfO4Ez04cw9Ofec7/5zzr15NEnkUxSVFx8ObZ1x7nzHN6z9nOhnzOFwWCnECcKoEFbBRrrp6iF/XRvD0BoplkdTuAiIhtt3P3Fu+jJlKlkM1WoXLFjVeSnpXrC94gV3ciJp1X0L1K7+NtDfvXdpj1TmmUwm8QTfLa867T+ceWTSwO5r5b87XNaDEoBrv3p2Ai+AU1Qh5OiDGS4UXi4roAisQHBiYfJS2obAVPMyELYcGxViOIaKcLaNLXzadej5nBUBPXW6hdYW0z4RQOYUXK2tUfr8QeXL0Kn4JKEBk7QWdtrrLggJJEmoCBxVCf50qIaaa0HABFkEPZaLNnGfwPNFGV0u05Y554bvMQoBPLbxs9t9QydJpHP/KayRbsf+pG1NdgTTgDuGXa8dbS41ZtArxaQYT1WlHVqYaloGOcvJIan4X2MdViTl3vExbS+GPfXlvzzutj1LPch9HrYea59t0YIRtAAO+PQuIWYwNKikYty41Iuk/3TvMzsCB9HcQR7msgzgjZs7Z5rLQPR6PojeJW2d3oDCoG/IlwAYqlexbp/i9eB19ziuBoMoAlrR03YZ0G8+0JFhS8EjuhD6zWfuCTEjppcBOKYX1bwaqA5MM2oYZ4pBy7XjrAyY7sPqU01FcNZW/jtwZeXXVpt5u1RM4JhYzHFBddqz5/28fUU2NwngtVUbZUCE79o6x67/MYiXLiSbS8D9xp1vI7znkLvDK07A5/MiT7mzdxMMAsdMqxaiWDHkgzePigBUXy9KTfdWeVKNSjjPrvv5uKkYxszlIHX7eDLeVfkgbt30bt5eAlOOtT9nLRrI03szrOumOtcb4SrTSj2KKfr4nuUZ7kR8HFPAYXLlYqxRl43TGjjTWAhHCC1MNK/+lWA0cJLRgfsh95G/N1H136z7+BCSuHMuMEGVLo4a1XCKKcuO0WXZBw1FcNighmPWbe8jIeeJpdFiCrkHguWUyM92NBKseBut8T92bfsw66z49IyrHH2T5CvlqeCYUvL/ANIZ7+ohXSdWAAAAAElFTkSuQmCC"))
  do msg.AttachStream(stream,"id1")
    
  set part=msg.Parts.GetAt(1)
  set part.ContentType="image/png"
  set part.InlineAttachment=1    // otherwise, the default is attachment. graphic inside html
  do part.Headers.SetAt("id1","Content-ID")

  do msg.TextData.Write("<b>Hello< / b>, </b><font color='red'>World<font color='red'></font>!")
  do msg.TextData.Write("<br/><img src='cid:id1'>")
  s status= tmpEmail.Send(msg)

Certifications & Credly badges:
Nael has no Certifications & Credly badges yet.
Global Masters badges:
Nael has no Global Masters badges yet.
Followers:
Following:
Nael has not followed anybody yet.