Codeunit 9520 "Mail Management"
Base Application · System.Email
Across versions
- BC23present
- BC244 procedures removed, 1 events added
- BC25-26unchanged
- BC272 procedures removed, 2 events changed
- BC28-30unchanged
Neighbourhood 70 connected objects and pages
Base Application · System.Email · BC23-30 · source at ea08af5e · facts from BC29
Properties
| Property | Value |
|---|---|
| Permissions | TableData “Email Attachments” = rimd |
Events published
OnSetIsHandlingGetEmailBodyCustomer(var Result: Boolean)(integration)- subscribers: Codeunit 9520 “Mail Management” HandleOnOnSetIsHandlingGetEmailBodyCustomer
OnSetIsHandlingGetEmailBodyVendor(var Result: Boolean)(integration)- subscribers: Codeunit 9520 “Mail Management” HandleOnSetIsHandlingGetEmailBodyVendor
OnBeforeCheckValidEmailAddresses(Recipients: Text; var IsHandled: Boolean)(integration)OnBeforeCheckValidEmailAddr(EmailAddress: Text; var IsHandled: Boolean)(integration)OnBeforeDoSending(var CancelSending: Boolean)(integration)OnBeforeIsEnabled(OutlookSupported: Boolean; var Result: Boolean; var IsHandled: Boolean)(integration)OnBeforeDownloadPdfAttachment(var TempEmailItem: Record "Email Item" temporary; var IsHandled: Boolean)(integration)- subscribers: Codeunit 1630 “Office Management” OnBeforeDownloadPdfAttachment
OnBeforeQualifyFromAddress(var TempEmailItem: Record "Email Item" temporary)(integration)OnBeforeValidateEmailAddressField(var EmailAddress: Text; var IsHandled: Boolean)(integration)OnBeforeSendMailOnWinClient(var TempEmailItem: Record "Email Item" temporary)Δ BC27 (integration, obsolete 27.0)OnAfterDeleteTempAttachments(var EmailItem: Record "Email Item")Δ BC27 (integration, obsolete 27.0)OnAfterGetSenderEmailAddress(var EmailItem: Record "Email Item")(integration)OnAfterIsBackground(var Result: Boolean)(integration)OnAfterGetAttachmentName(AttachmentNames: List of [Text]; Index: Integer; var AttachmentName: Text[250]; var TempEmailItem: Record "Email Item" temporary)(integration)OnAfterSendMailOrDownload(var TempEmailItem: Record "Email Item" temporary; var MailSent: Boolean)(integration)OnBeforeImageBase64ToUrl(var BodyText: Text; var SearchText: Text; var Regex: DotNet Regex; var MemoryStream: DotNet MemoryStream; var MediaId: Guid; var Base64: Text; var Convert: DotNet Convert; var IsHandled: Boolean)(integration)OnQualifyFromAddressOnAfterGetEmailAccount(var TempEmailItem: Record "Email Item" temporary; EmailScenario: Enum "Email Scenario"; var TempEmailAccount: Record "Email Account" temporary)(integration)OnSendOnBeforeQualifyFromAddress(var TempEmailItem: Record "Email Item" temporary; EmailScenario: Enum "Email Scenario")(integration)OnSendMailOrDownloadOnBeforeMailManagementIsSent(var MailManagement: Codeunit "Mail Management"; TempEmailItem: Record "Email Item" temporary)(integration)OnSendViaEmailModuleOnAfterAddAttachments(var Message: Codeunit "Email Message"; var TempEmailItem: Record "Email Item" temporary)(integration)OnSendViaEmailModuleOnAfterCreateMessage(var Message: Codeunit "Email Message"; var TempEmailItem: Record "Email Item" temporary)(integration)OnSendViaEmailModuleOnAfterEmailSend(var Message: Codeunit "Email Message"; var TempEmailItem: Record "Email Item" temporary; var MailSent: Boolean; var Cancelled: Boolean; var HideEmailSendingError: Boolean)(integration)OnBeforeSendViaEmailModule(var TempEmailItem: Record "Email Item" temporary; EmailScenario: Enum "Email Scenario"; var TempEmailAccount: Record "Email Account" temporary; HideMailDialog: Boolean; var IsHandled: Boolean; var Result: Boolean)(integration)OnAfterDownloadPDFAttachment()(integration)OnSendViaEmailModuleOnBeforeOpenInEditorModally(EmailScenario: Enum "Email Scenario"; var TempEmailAccount: Record "Email Account" temporary; var Message: Codeunit "Email Message"; var HideMailDialog: Boolean)+ BC24 (integration)
Event subscriptions
- HandleOnOnSetIsHandlingGetEmailBodyCustomer subscribes to Codeunit “Mail Management” OnSetIsHandlingGetEmailBodyCustomer
- HandleOnSetIsHandlingGetEmailBodyVendor subscribes to Codeunit “Mail Management” OnSetIsHandlingGetEmailBodyVendor
Procedures
AddSource(TableId: Integer; SystemId: Guid)AddSendTo(EmailAddresses: Text)RecipientStringToList(DelimitedRecipients: Text; var Recipients: List of [Text])(internal)InitializeFrom(NewHideMailDialog: Boolean; NewHideEmailSendingError: Boolean)SetHideMailDialog(NewHideMailDialog: Boolean)SetHideEmailSendingError(NewHideEmailSendingError: Boolean)CheckValidEmailAddresses(Recipients: Text)CheckValidEmailAddress(EmailAddress: Text)ValidateEmailAddressField(var EmailAddress: Text)IsEnabled(): BooleanIsCancelled(): BooleanIsSent(): BooleanSend(var ParmEmailItem: Record "Email Item"; EmailScenario: Enum "Email Scenario"): Boolean− BC24Send(var ParmEmailItem: Record "Email Item"; EmailScenario: Enum "Email Scenario"; Enqueue: Boolean): Boolean− BC24SendMailOrDownload(var TempEmailItem: Record "Email Item" temporary; HideMailDialog: Boolean; EmailScenario: Enum "Email Scenario")− BC24SendMailOrDownload(var TempEmailItem: Record "Email Item" temporary; HideMailDialog: Boolean; EmailScenario: Enum "Email Scenario"; Enqueue: Boolean)− BC24DownloadPdfAttachment(var TempEmailItem: Record "Email Item" temporary)ImageBase64ToUrl(BodyText: Text): TextTryGetSenderEmailAddress(var FromAddress: Text[250])GetSenderEmailAddress(EmailScenario: Enum "Email Scenario"): Text[250]IsHandlingGetEmailBody(): BooleanIsHandlingGetEmailBodyCustomer(): BooleanIsHandlingGetEmailBodyVendor(): Boolean
Plus 6 local procedures.
Triggers
OnRun
Calls
From the extracted call graph of BC29 (graphify-al on the snapshot checkout): calls whose target is known from a declared type or an Object::"Name" argument. Interface dispatch and calls through events are not counted, so the list is not complete.
- Codeunit 8901 “Email” (5 calls:
SendViaEmailModule → AddDefaultAttachments,SendViaEmailModule → AddRelation,SendViaEmailModule → Enqueue, …) - Codeunit 4102 “Temp Blob List” (4 calls:
DownloadPdfAttachment → (object),DownloadPdfAttachment → Get,SendViaEmailModule → (object), …) - Codeunit 425 “Data Compression” (4 calls:
DownloadPdfAttachment → AddEntry,DownloadPdfAttachment → CloseZipArchive,DownloadPdfAttachment → CreateZipArchive, …) - Codeunit 4100 “Temp Blob” (3 calls:
DownloadPdfAttachment → CreateInStream,DownloadPdfAttachment → CreateOutStream,SendViaEmailModule → CreateInStream) - Codeunit 8904 “Email Message” (3 calls:
SendViaEmailModule → AddAttachment,SendViaEmailModule → Create,SendViaEmailModule → GetId) - Codeunit 8894 “Email Account” (2 calls:
CheckValidEmailAddress → ValidateEmailAddress,IsEnabled → IsAnyAccountRegistered) - Codeunit 28 “Error Message Management” (1 call:
SendViaEmailModule → LogSimpleErrorMessage) - Codeunit 4030 “Client Type Management” (1 call:
IsBackground → GetCurrentClientType) - Codeunit 8893 “Email Scenario” (1 call:
QualifyFromAddress → GetEmailAccount)
Called by
- Codeunit 5916 “ServMailManagement” (4 calls:
OnRun → IsEnabled,OnRun → Send,OnRun → SetHideEmailSendingError, …) - Codeunit 104058 “Upgrade User Setup” (1 call:
SetEmailOnRecord → CheckValidEmailAddress) - Codeunit 1509 “Notification Entry Dispatcher” (1 call:
CreateMailAndDispatch → IsEnabled) - Codeunit 1687 “Email Logging Message” (1 call:
GetEmailAddressProperty → ValidateEmailAddressField) - Codeunit 1890 “Reminder Communication” (1 call:
PopulateEmailText → IsHandlingGetEmailBody) - Codeunit 47021 “SL Vendor Migrator” (1 call:
CreateOrUpdateOrderAddress → ValidateEmailAddressField) - Codeunit 6702 “O365 Contact Sync. Helper” (1 call:
TransferExchangeContactToNavContactNoValidate → CheckValidEmailAddress) - Report 116 “Statement” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 117 “Reminder” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 118 “Finance Charge Memo” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1303 “Standard Sales - Draft Invoice” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1304 “Standard Sales - Quote” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1305 “Standard Sales - Order Conf.” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1306 “Standard Sales - Invoice” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1307 “Standard Sales - Credit Memo” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1308 “Standard Sales - Shipment” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1309 “Standard Sales - Return Rcpt.” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1316 “Standard Statement” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 1322 “Standard Purchase - Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 208 “Sales - Shipment” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 210 “Blanket Sales Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 215 “Archived Sales Quote” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 216 “Archived Sales Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 404 “Purchase - Quote” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 405 “Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 406 “Purchase - Invoice” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 407 “Purchase - Credit Memo” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 408 “Purchase - Receipt” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 410 “Blanket Purchase Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 413 “Self Billing Invoice” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 415 “Archived Purchase Quote” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 416 “Archived Purchase Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 417 “Arch.Purch. Return Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 418 “Arch. Sales Return Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5055 “Contact - Cover Sheet” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5064 “Segment - Cover Sheet” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5085 “Contact Cover Sheet” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5174 “Archived Blanket Purch. Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5176 “Archived Blanket Sales Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5751 “Put-away List” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5752 “Picking List” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5900 “Service Order” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5902 “Service Quote” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5911 “Service - Invoice” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5912 “Service - Credit Memo” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5913 “Service - Shipment” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5970 “Service Contract” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 5972 “Service Contract Quote” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 6222 “EUDR Sales Invoice” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - Report 6631 “Return Order Confirmation” (1 call:
IsReportInPreviewMode → IsHandlingGetEmailBody) - and 10 more: data/code/graph/29/calls.json
Deprecations
- procedure OnAfterDeleteTempAttachments: Pending 27.0 (#if not CLEAN27), “This event is never raised.”
- procedure OnBeforeSendMailOnWinClient: Pending 27.0 (#if not CLEAN27), “This event is never raised.”
Source: AL metadata extracted from the code (names, ids, signatures, properties); no code bodies (D10).
Ask your agent
Procedure bodies are not stored here (D10). The call sections above are our own, per object, from the BC29 call graph. For a procedure body or the calls of one procedure, ask bc-code-atlas (external, by Stefan Maron, MIT; default corpus w1-28), which the bc-observatory plugin connects: bcatlas_resolve_node(object_type: "codeunit", object_name: "Mail Management"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.