---
title: "Codeunit 9520 Mail Management"
author: "Jonas Paprotka"
url: https://jonas-paprotka.de/ref/codeunit/9520-mail-management/
type: codeunit
id: 9520
name: "Mail Management"
app: "Base Application"
namespace: System.EMail
versions: "17-28"
build: 28.5.54151.54365
source: "https://jonas-paprotka.de/ref/codeunit/9520-mail-management/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 9520 Mail Management

Jonas Paprotka, https://jonas-paprotka.de/ref/codeunit/9520-mail-management/

| | |
| --- | --- |
| App | Base Application |
| Namespace | System.EMail |
| Versions | 17-28 |
| Source file | Modules/System/Email/MailManagement.Codeunit.al |

## Procedures

| Name | Parameters | Returns | Access | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- | --- |
| RecipientStringToList | (Text, var List) | - | internal | 17-28 | - | - |
| GetLastGraphError | () | Text | public | 17-23 | Pending 21.0 | Microsoft Invoicing has been discontinued. |
| InitializeFrom | (Boolean, Boolean) | - | public | 17-28 | - | - |
| SetHideMailDialog | (Boolean) | - | public | 17-28 | - | - |
| SetHideSMTPError | (Boolean) | - | public | 17-19 | Pending 17.0 | Replaced with the SetHideEmailSendingError function |
| SetHideEmailSendingError | (Boolean) | - | public | 17-28 | - | - |
| CheckValidEmailAddresses | (Text) | - | public | 17-28 | - | - |
| CheckValidEmailAddress | (Text) | Boolean | public | 17-28 | - | - |
| ValidateEmailAddressField | (var Text) | Boolean | public | 17-28 | - | - |
| IsSMTPEnabled | () | Boolean | public | 17-19 | Pending 17.0 | Replaced with the IsAnyAccountRegistered in "Email Account" codeunit from "System Application". |
| IsGraphEnabled | () | Boolean | public | 17-23 | Pending 21.0 | Microsoft Invoicing has been discontinued. |
| IsEnabled | () | Boolean | public | 17-28 | - | - |
| IsCancelled | () | Boolean | public | 17-28 | - | - |
| IsSent | () | Boolean | public | 17-28 | - | - |
| Send | (var Record Email Item, Enum Email Scenario) | Boolean | public | 17-28 | - | - |
| Send | (Record Email Item) | Boolean | public | 17-23 | Pending 17.0 | Replaced with the overload containing Email Scenario |
| SendMailOrDownload | (var Record Email Item, Boolean, Enum Email Scenario) | - | public | 17-28 | - | - |
| SendMailOrDownload | (Record Email Item, Boolean) | - | public | 17-23 | Pending 17.0 | Replaced with the overload containing Email Scenario |
| DownloadPdfAttachment | (var Record Email Item) | - | public | 17-28 | - | - |
| ImageBase64ToUrl | (Text) | Text | public | 17-28 | - | - |
| TryGetSenderEmailAddress | (var Text[250]) | Boolean | public | 17-28 | - | - |
| GetSenderEmailAddress | () | Text[250] | public | 17-19 | Pending 17.0 | Sender will be chosen based on the scenario parameter to the Send function when using the email feature is enabled. To control which account will be used, use the overload containing Email Scenario. |
| GetSenderEmailAddress | (Enum Email Scenario) | Text[250] | public | 17-28 | - | - |
| GetSMTPCredentials | (var Record SMTP Mail Setup) | - | public | 17-19 | Pending 17.0 | Not needed once email feature is enabled. |
| IsHandlingGetEmailBody | () | Boolean | public | 17-28 | - | - |
| IsHandlingGetEmailBodyCustomer | () | Boolean | public | 17-28 | - | - |
| IsHandlingGetEmailBodyVendor | () | Boolean | public | 17-28 | - | - |
| AddSource | (Integer, Guid) | - | public | 18-28 | - | - |
| AddSendTo | (Text) | - | public | 19-28 | - | - |
| Send | (var Record Email Item, Enum Email Scenario, Boolean) | Boolean | public | 23-28 | - | - |
| SendMailOrDownload | (var Record Email Item, Boolean, Enum Email Scenario, Boolean) | - | public | 23-28 | - | - |

## Events

| Kind | Name | Parameters | Versions | Obsolete | Reason |
| --- | --- | --- | --- | --- | --- |
| Integration event | OnAfterSentViaSMTP | (var Record Email Item, var Codeunit SMTP Mail, var Boolean, Boolean) | 17-19 | Pending 19.3 | SMTP Mail codeunit has been obsolete |
| Integration event | OnBeforeCheckValidEmailAddress | (Text, var Boolean) | 17 | Pending 15.3 | Replaced by event OnBeforeCheckValidEmailAddresses |
| Integration event | OnBeforeCheckValidEmailAddresses | (Text, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeCheckValidEmailAddr | (Text, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeDoSending | (var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeDownloadPdfAttachment | (var Record Email Item, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeQualifyFromAddress | (var Record Email Item) | 17-28 | - | - |
| Integration event | OnBeforeRunMailDialog | (var Record Email Item, Boolean, Boolean, var Boolean, var Boolean, var Boolean, var Boolean) | 17-22 | Pending 20.0 | Email dialog has been removed, event no longer relevant. |
| Integration event | OnBeforeSentViaSMTP | (var Record Email Item, var Codeunit SMTP Mail) | 17-19 | Pending 19.3 | SMTP Mail codeunit has been obsolete |
| Integration event | OnBeforeValidateEmailAddressField | (var Text, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeSendMailOnWinClient | (var Record Email Item) | 17-28 | Pending 27.0 | This event is never raised. |
| Integration event | OnAfterDeleteTempAttachments | (var Record Email Item) | 17-28 | Pending 27.0 | This event is never raised. |
| Integration event | OnAfterGetSenderEmailAddress | (var Record Email Item) | 17-28 | - | - |
| Integration event | OnAfterSendMailOrDownload | (var Record Email Item, var Boolean) | 17-28 | - | - |
| Integration event | OnBeforeImageBase64ToUrl | (var Text, var Text, var DotNet Regex, var DotNet MemoryStream, var Guid, var Text, var DotNet Convert, var Boolean) | 17-28 | - | - |
| Integration event | OnSendOnBeforeQualifyFromAddress | (var Record Email Item, Enum Email Scenario) | 17-28 | - | - |
| Integration event | OnSendMailOrDownloadOnBeforeMailManagementIsSent | (var Codeunit Mail Management) | 17 | - | - |
| Integration event | OnSendViaEmailModuleOnAfterAddAttachments | (var Codeunit Email Message, var Record Email Item) | 17-28 | - | - |
| Integration event | OnSendViaEmailModuleOnAfterCreateMessage | (var Codeunit Email Message, var Record Email Item) | 17-28 | - | - |
| Integration event | OnSendViaSMTPOnBeforeSMTPMailAddAttachment | (var Record Email Item, var Codeunit SMTP Mail) | 17-19 | Pending 19.3 | SMTP Mail codeunit has been obsolete |
| Integration event | OnBeforeIsEnabled | (Boolean, var Boolean, var Boolean) | 18-28 | - | - |
| Integration event | OnQualifyFromAddressOnAfterGetEmailAccount | (var Record Email Item, Enum Email Scenario, var Record Email Account) | 18-28 | - | - |
| Integration event | OnSendMailOrDownloadOnBeforeMailManagementIsSent | (var Codeunit Mail Management, Record Email Item) | 18-28 | - | - |
| Integration event | OnSendViaEmailModuleOnAfterEmailSend | (var Codeunit Email Message, var Record Email Item, var Boolean, var Boolean, var Boolean) | 18-28 | - | - |
| Integration event | OnSetIsHandlingGetEmailBodyCustomer | (var Boolean) | 19-28 | - | - |
| Integration event | OnSetIsHandlingGetEmailBodyVendor | (var Boolean) | 19-28 | - | - |
| Integration event | OnAfterIsBackground | (var Boolean) | 21-28 | - | - |
| Integration event | OnAfterGetAttachmentName | (List, Integer, var Text[250]) | 21-22 | - | - |
| Integration event | OnAfterGetAttachmentName | (List, Integer, var Text[250], var Record Email Item) | 23-28 | - | - |
| Integration event | OnBeforeSendViaEmailModule | (var Record Email Item, Enum Email Scenario, var Record Email Account, Boolean, var Boolean, var Boolean) | 23-28 | - | - |
| Integration event | OnAfterDownloadPDFAttachment | () | 23-28 | - | - |
| Integration event | OnSendViaEmailModuleOnBeforeOpenInEditorModally | (Enum Email Scenario, var Record Email Account, var Codeunit Email Message, var Boolean) | 24-28 | - | - |

## Source

Symbols: Microsoft.BaseApplication.symbols.437dbf0e-84ff-417a-965d-ed2bb9650972, https://dynamicssmb2.pkgs.visualstudio.com/DynamicsBCPublicFeeds/_packaging/MSSymbols/nuget/v3/index.json, highest build per major on 2026-09-20.
AL source 29: https://github.com/microsoft/BCApps, MIT, releases/29.x at a66254c3b8b5bb1cea290dc8f9d097aec4381153.

Jonas Paprotka, 2026-09-20.
