---
title: "Codeunit 8901 Email"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/8901-email/
type: codeunit
id: 8901
name: "Email"
app: "System Application"
namespace: System.Email
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/8901-email/source/24/ https://jonas-paprotka.de/ref/codeunit/8901-email/source/25/ https://jonas-paprotka.de/ref/codeunit/8901-email/source/26/ https://jonas-paprotka.de/ref/codeunit/8901-email/source/27/ https://jonas-paprotka.de/ref/codeunit/8901-email/source/28/ https://jonas-paprotka.de/ref/codeunit/8901-email/source/29/"
checked: 2026-09-20
subject: "Microsoft Dynamics 365 Business Central"
license: "Content © 2026 Jonas Paprotka. Quote freely with attribution and a link."
---

# Codeunit 8901 Email

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/8901-email/

| | |
| --- | --- |
| App | System Application |
| Namespace | System.Email |
| Versions | 17-28 |
| Source file | Email/src/Email/Email.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| SaveAsDraft | (Codeunit Email Message) | - | public | 17-28 | - | - |
| SaveAsDraft | (Codeunit Email Message, var Record Email Outbox) | - | public | 17-28 | - | - |
| Enqueue | (Codeunit Email Message) | - | public | 17-28 | - | - |
| Enqueue | (Codeunit Email Message, Enum Email Scenario) | - | public | 17-28 | - | - |
| Enqueue | (Codeunit Email Message, Record Email Account) | - | public | 17-28 | - | - |
| Enqueue | (Codeunit Email Message, Guid, Enum Email Connector) | - | public | 17-28 | - | - |
| Send | (Codeunit Email Message) | Boolean | public | 17-28 | - | - |
| Send | (Codeunit Email Message, Enum Email Scenario) | Boolean | public | 17-28 | - | - |
| Send | (Codeunit Email Message, Record Email Account) | Boolean | public | 17-28 | - | - |
| Send | (Codeunit Email Message, Guid, Enum Email Connector) | Boolean | public | 17-28 | - | - |
| OpenInEditor | (Codeunit Email Message) | - | public | 17-28 | - | - |
| OpenInEditor | (Codeunit Email Message, Enum Email Scenario) | - | public | 17-28 | - | - |
| OpenInEditor | (Codeunit Email Message, Record Email Account) | - | public | 17-28 | - | - |
| OpenInEditor | (Codeunit Email Message, Guid, Enum Email Connector) | - | public | 17-28 | - | - |
| OpenInEditorModally | (Codeunit Email Message) | Enum Email Action | public | 17-28 | - | - |
| OpenInEditorModally | (Codeunit Email Message, Enum Email Scenario) | Enum Email Action | public | 17-28 | - | - |
| OpenInEditorModally | (Codeunit Email Message, Record Email Account) | Enum Email Action | public | 17-28 | - | - |
| OpenInEditorModally | (Codeunit Email Message, Guid, Enum Email Connector) | Enum Email Action | public | 17-28 | - | - |
| GetSentEmailsForRecord | (Integer, Guid) | Record Sent Email | public | 18-22 | Pending 19.0 | Use GetSentEmailsForRecord(TableId: Integer; SystemId: Guid; var ResultEmailOutbox: Record "Email Outbox" temporary) instead. |
| OpenSentEmails | (Integer, Guid) | - | public | 18-28 | - | - |
| AddRelation | (Codeunit Email Message, Integer, Guid, Enum Email Relation Type) | - | public | 18-22 | Pending 20.0 | Use "AddRelation(EmailMessage: Codeunit "Email Message"; TableId: Integer; SystemId: Guid; RelationType: Enum "Email Relation Type")" with origin |
| GetSentEmailsForRecord | (Integer, Guid, var Record Sent Email) | - | public | 19-28 | - | - |
| GetSentEmailsForRecord | (Variant, var Record Sent Email) | - | public | 19-28 | - | - |
| GetEmailOutboxForRecord | (Variant, var Record Email Outbox) | - | public | 19-28 | - | - |
| GetOutboxEmailRecordStatus | (Guid) | Enum Email Status | public | 19-28 | - | - |
| AddRelation | (Codeunit Email Message, Integer, Guid, Enum Email Relation Type, Enum Email Relation Origin) | - | public | 19-28 | - | - |
| RemoveRelation | (Codeunit Email Message, Integer, Guid) | Boolean | public | 19-28 | - | - |
| HasRelations | (Codeunit Email Message) | Boolean | public | 19-28 | - | - |
| SaveAsDraft | (Codeunit Email Message, Guid, Enum Email Connector, var Record Email Outbox) | - | public | 20-28 | - | - |
| Enqueue | (Codeunit Email Message, DateTime) | - | public | 20-28 | - | - |
| Enqueue | (Codeunit Email Message, Enum Email Scenario, DateTime) | - | public | 20-28 | - | - |
| Enqueue | (Codeunit Email Message, Record Email Account, DateTime) | - | public | 20-28 | - | - |
| Enqueue | (Codeunit Email Message, Guid, Enum Email Connector, DateTime) | - | public | 20-28 | - | - |
| OpenSentEmails | (Variant) | - | public | 20-28 | - | - |
| OpenInEditorModallyWithScenario | (Codeunit Email Message, Record Email Account, Enum Email Scenario) | Enum Email Action | public | 21-28 | - | - |
| AddDefaultAttachments | (Codeunit Email Message, Enum Email Scenario) | - | public | 22-28 | - | - |
| OpenSentEmails | (Integer, Guid, DateTime) | - | public | 24-28 | - | - |
| Reply | (Codeunit Email Message, Text, Guid, Enum Email Connector) | Boolean | public | 25-28 | Pending 26.0 | Replaced by Reply without the ExternalId parameter. ExternalId is not used and is contained in the EmailMessage parameter. |
| ReplyAll | (Codeunit Email Message, Text, Guid, Enum Email Connector) | Boolean | public | 25-28 | Pending 26.0 | Replaced by ReplyAll without the ExternalId parameter. ExternalId is not used and is contained in the EmailMessage parameter. |
| EnqueueReply | (Codeunit Email Message, Text, Guid, Enum Email Connector, var Record Email Outbox) | - | public | 25-28 | Pending 26.0 | Replaced by EnqueueReply without the ExternalId parameter. ExternalId is not used and is contained in the EmailMessage parameter. |
| EnqueueReplyAll | (Codeunit Email Message, Text, Guid, Enum Email Connector, var Record Email Outbox) | - | public | 25-28 | Pending 26.0 | Replaced by EnqueueReplyAll without the ExternalId parameter. ExternalId is not used and is contained in the EmailMessage parameter. |
| Reply | (Codeunit Email Message, Guid, Enum Email Connector) | Boolean | public | 25-28 | - | - |
| ReplyAll | (Codeunit Email Message, Guid, Enum Email Connector) | Boolean | public | 25-28 | - | - |
| EnqueueReply | (Codeunit Email Message, Guid, Enum Email Connector, var Record Email Outbox) | - | public | 25-28 | - | - |
| EnqueueReplyAll | (Codeunit Email Message, Guid, Enum Email Connector, var Record Email Outbox) | - | public | 25-28 | - | - |
| RetrieveEmails | (Guid, Enum Email Connector, var Record Email Inbox) | - | public | 25-28 | Pending 26.0 | Replaced by RetrieveEmails with an additional Filters parameter of type Record "Email Retrieval Filters". |
| RetrieveEmails | (Guid, Enum Email Connector, var Record Email Inbox, var Record Email Retrieval Filters) | - | public | 25-28 | - | - |
| MarkAsRead | (Guid, Enum Email Connector, Text) | - | public | 25-28 | - | - |
| GetMailFolders | (Guid, Enum Email Connector, var Record Email Folders) | - | public | 27-28 | - | - |
| GetEmailCategories | (Guid, Enum Email Connector, var Record Email Categories) | - | public | 28 | - | - |
| CreateEmailCategory | (Guid, Enum Email Connector, Text) | Text | public | 28 | - | - |
| CreateEmailCategory | (Guid, Enum Email Connector, Text, Text) | Text | public | 28 | - | - |
| ApplyEmailCategory | (Guid, Enum Email Connector, Text, Text) | - | public | 28 | - | - |
| ApplyEmailCategory | (Guid, Enum Email Connector, Text, List) | - | public | 28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnGetTestEmailBody | (Enum Email Connector, var Text) | 17-22 | Pending 17.3 | The event will be removed. Subscribe to OnGetBodyForTestEmail instead |
| Integration event | OnGetBodyForTestEmail | (Enum Email Connector, Guid, var Text) | 17-28 | - | - |
| Integration event | OnAfterSendEmail | (Guid, Boolean) | 17-22 | Pending 20.1 | This event has been replaced with OnAfterEmailSend and OnAfterEmailSendFailed which are isolated. |
| Integration event | OnShowSource | (Integer, Guid, var Boolean) | 18-28 | - | - |
| Integration event | OnFindRelatedAttachments | (Integer, Guid, var Record Email Related Attachment) | 18-28 | - | - |
| Integration event | OnGetAttachment | (Integer, Guid, Guid) | 18-28 | - | - |
| Integration event | OnEnqueuedInOutbox | (Guid) | 18-28 | - | - |
| Integration event | OnAfterAddRelation | (Guid, Integer, Guid, var Dictionary) | 19-28 | - | - |
| Integration event | OnAfterRemoveRelation | (Guid, Integer, Guid) | 19-28 | - | - |
| Integration event | OnAfterEmailSent | (Record Sent Email) | 20-28 | - | - |
| Integration event | OnAfterEmailSendFailed | (Record Email Outbox) | 20-28 | - | - |
| Integration event | OnBeforeOpenEmailEditor | (var Codeunit Email Message, Boolean) | 20-28 | - | - |
| Integration event | OnBeforeSendEmail | (var Codeunit Email Message) | 20-28 | - | - |
| Integration event | OnBeforeGetEmailAttachmentsByEmailScenarios | (Record Email Scenario Attachments) | 23-25 | - | - |
| Integration event | OnEnqueuedReplyInOutbox | (Guid) | 25-28 | - | - |
| Integration event | OnBeforeReplyEmail | (var Codeunit Email Message) | 25-28 | - | - |
| Integration event | OnBeforeGetEmailAttachmentsByEmailScenarios | (var Record Email Scenario Attachments) | 26-28 | - | - |

## Source

Symbols: Microsoft.SystemApplication.symbols.63ca2fa4-4f03-4f2b-a480-172fef340d3f, https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json, highest build per major on 2026-09-20.
AL source 24: https://github.com/microsoft/BCApps, MIT, releases/24.x at fe14d3e6db00d28df3a69c7bba830813d70794e2.
AL source 25: https://github.com/microsoft/BCApps, MIT, releases/25.x at 68d52c129129c83b2e396a473aaa5b2ce61d2eed.
AL source 26: https://github.com/microsoft/BCApps, MIT, releases/26.x at 78c4acf0d64a8eee157ea80164fa8fc2acffc9eb.
AL source 27: https://github.com/microsoft/BCApps, MIT, releases/27.x at 1749020b4c9445a43e4f7f540e89b7fa76ec25fd.
AL source 28: https://github.com/microsoft/BCApps, MIT, releases/28.x at 740f59156b249f8ed7cba2e28423f03ae7b07233.
AL source 29: https://github.com/microsoft/BCApps, MIT, releases/29.x at a66254c3b8b5bb1cea290dc8f9d097aec4381153.

Jonas Paprotka, 2026-09-20.
