Skip to main content

What I’m trying to achieve is to retreive new emails using New Email Matching Search with an specific subject and then send it to my server and store entire email content so I’m using the “Body html” proprerty. The thing is that embedded images in the body are sent as attachments so when I want to get them I need to get it from “All attachments” proprerty. The problem appears when I embed more that 1 image cause when I download the zip file from the url from “All attachments” proprerty I find one image inside when for example I actually embed 3. Also the one that appears inside the zip seems to be random cause it’s not actually the first or the last image I embed. But still I don’t know if this is a bug that can be solved or for some reason this is how this works and probably is better that I use Gmail API directly.

 

Hi ​@Finsmart 

What Zap action steps are you trying to use? (post screenshots)

 

Email attachments are different from embedded imates.

 

For images to render in emails, the HTML needs to include the full accessible link to the image file, so you should not have to use the email attachments.

 

If you trying to save each embedded image individually, then that would involve a different approach, so extract each of the image links from the HTML to use to upload the image files.

 

<img src="https://example.com/images/promo-banner.jpg" alt="Promo Banner">

 


Thanks for the response.
Yes I’m using these 2.

First I catch the email and then in the second I call my server endpoint to send the data. I’m sending these properties.
 


When I say embedding images I mean copying and pasting my images in the body of my email (I’m using gmail web client). What I saw is that then Zapier or something in the middle is making the inline images to be an attachment and then referenced with the cid (Content ID). This screenshot is actualy from the “Body Html” property from Zapier.

I found that the “All Attachments” property has url that downloads a zip file with in theory all the attached stuff. What I get in the zip is just one of the images I attached but not all. So it’s weird cause its partially working.

This post has been edited by a moderator to remove personally identifiable information (PII). Please remember that this is a public forum and avoid sharing personal or potentially sensitive details.


@Finsmart 

Feedback about the email body HTML images.

It’s unclear where you took the below screenshot from.

To clarify the actual data from Gmail, post screenshot showing the DATA OUT from Zap step 1 related to the images in the HTML.

 

What you’re seeing are CID (Content-ID) image references, which are used when embedding inline images in emails.

  • The src="cid:..." means the image isn’t loaded from an external URL — instead, it’s attached to the email as a MIME part.

  • The cid:ii_me7fsrxe6 is an identifier (Content-ID) that links the <img> tag in the HTML to the actual image file in the email’s attachments.

  • Email clients that support inline images (like Outlook, Gmail, Apple Mail) will display the image from the attachment instead of requiring an external fetch.

Why use CID images?

  • Works offline since images are part of the email.

  • Avoids “Load remote content?” privacy prompts.

  • More reliable for some email marketing templates where remote images might be blocked.

Limitations:

  • Not all email clients render them perfectly (especially web-based clients).

  • In web contexts (not email), cid: won’t work — you’d need a full URL or data: base64 encoding.

If you were sending this in a marketing email, you’d typically replace these with full image URLs hosted on your server or CDN.


@Troy Tessalone thanks
This is the screenshot from the Step 1.

 

So what I did is open my gmail web client “reply to all” in an email and then copy and paste some images directly from my clipboard to the body of the email and send it.

When I then inspect the email I just sent in googe see that images are hosted by them. And they publicly available. (Sorry no they are not publicly available I thought becase I was able to access the url, but I think it only work because I was using the same browser session)


Don’t know if Zapier does something in between when it reads the email or the Gmail API itself (when Zapier is querying the data) transform that urls into CIDs and also makes the images as attachments, but yeah that’s what I found.


@Finsmart 

You may need to use a different Zap to handle the email attachments triggered from this action: Gmail - New Attachment

 

 

Feedback…

What you’re seeing with the cid: sources is inline image embedding using Content-ID (CID) URLs, which is common in HTML emails.

Here’s what’s going on:

Why the image sources are CIDs

  • cid: stands for Content-ID.

  • In MIME-encoded emails (the format used by Gmail and most clients), images can be embedded directly inside the email as attachments rather than linked to an external URL.

  • The cid:ii_me7fsrxe6 is a unique identifier that tells the email client:
    “Find the image attachment in the email with this matching Content-ID and display it here.”

  • The images are base64 or binary attachments, and the CID reference replaces a typical https://... image URL.

Why/When this happens

This happens when:

  1. The sender’s email client or system inserted the image inline instead of linking to a web-hosted image.

    • Common in Outlook, Apple Mail, and other desktop clients.

  2. The sender attached images directly (or pasted them) into the message body, which forces them into the email as CID-embedded files.

  3. Marketing/email software often does this for better deliverability and offline viewing (images load even without internet).

  4. Security/Privacy reasons — no need to make external HTTP requests that could be tracked.

Effects in Gmail

  • Gmail replaces the CID references in the HTML with local blob-like references when rendering the email.

  • If you download the raw email (Show original), you’ll see a MIME structure with:

    Content-ID: <ii_me7fsrxe6>
    Content-Type: image/png; name="image.png"
    Content-Disposition: inline; filename="image.png"
    Content-Transfer-Encoding: base64
  • The src="cid:..." points to those attachments.

If you want these to be normal image URLs instead of cid:, the sender would need to host the images on a server and link them via https://... in the email HTML rather than embedding them.


Ok ​@Troy Tessalone I will try the other trigger. Thanks for your time and knowledge share, really appreciated! .🤗


Hey ​@Finsmart, just checking in! 👋

Did the New Attachment trigger Troy suggested allow you to get each of the image files uploaded correctly?

Keen to make sure you’re all set here, so please let us know how it went. 🙂


Reply