Get Email List doesn't include attachments in email object

When I use Get Mail, I can access the attachments with EmailVar.Attachments.

When I use Get Email List, EmailVar.Attachments is there, but it’s empty. Same for For Each Email…the .Attachments is empty

Access to the attachments directly from the Office365Message object should be consistent across all activities that get emails.

Hi @postwick

I think get mail retrieves the full email including attachments, while Get Email List returns only email metadata by default, so the Attachments property is empty. To access attachments, you must use Get mail on each mail item returned by Get mail List or enable downloading of full messages where supported.

Get Mail does not get just one email, it does the same thing as Get Email List - it retrieves an array/list of the emails. The datatype is even the same. Get Mail is a “classic” activity and Get Email List is a “modern” activity. It makes no sense to me that a modern activity wouldn’t retrieve the attachments as part of the metadata, because that’s exactly what they are.

Also, I tried the latest version 3.5.10 of Office365 Activities, and the result is the same.

Hi @postwick

Yes, that’s a known behavior.

  • Get Mail (single email) downloads the full email including attachments, so EmailVar.Attachments contains the files.
  • Get Email List or For Each Email only retrieves metadata for performance reasons, not the full email content. That’s why Attachments appears but is empty.

If you need attachments when looping through emails from Get Email List, you have to explicitly call Get Mail or Get Email for each message to fetch the full content, including attachments.

Hi @postwick

Both Get Mail (classic) and Get Email List (modern) return multiple emails, but modern activities like Get Email List only fetch metadata to improve performance, so attachments aren’t loaded automatically. To get attachments, you need to fetch the full email for each item using Get Mail or Get Email. This behavior hasn’t changed in version 3.5.10.

Get Mail is not for a single item. It returns a list of emails just like Get Email List. (Get Email by ID is the one that gets just one email).

The difference is Get Mail is “classic” and Get Email List is “modern.” I would expect the modern activity to work better and have the same expected results.

You’re right that both Get Mail (classic) and Get Email List (modern) return a list of emails. The difference isn’t the count, it’s what data is actually loaded.

Get Mail (classic) retrieves the full message payload, including attachments, while Get Email List (modern) is optimized to return message metadata only, even though the Attachments property exists on the object. That’s why it’s empty.

So it’s not that modern works “better” here, it’s a design choice for performance and scalability. If attachments are needed, the current pattern is still to fetch the full email per item (for example with Get Email by ID). This behavior is consistent and hasn’t changed in recent versions.

And I’m saying it’s poor design as it’s reasonable to expect an available property to be populated. Without it being populated it means the Get Email List activity won’t work for our needs - it causes extra work and doesn’t fit our process. And I don’t necessarily consider having to do a separate call to the API to be an optimization. A good solution would be a “retrieve attachments” property of the Get Email List activity so we can CHOOSE.

You’re right having the Attachments property empty is confusing and forces extra API calls. A better design would be a “retrieve attachments” option on Get Email List so users can choose whether to load them, instead of requiring separate calls. It’s a limitation that really needs a product enhancement.