codeunitPlatform, DevOps & Performanceofficial - Microsoftderived - from the source, no model text

Codeunit 8900 "Email Impl"

System Application · System.Email

Across versions

  1. BC23present
  2. BC243 procedures added
  3. BC2514 procedures added, 1 procedures removed
  4. BC262 procedures added
  5. BC273 procedures added, 1 procedures changed
  6. BC285 procedures added, 1 procedures changed
  7. BC29-30unchanged

Neighbourhood 21 connected objects and pages

Codeunit 8901 "Email" (calls, 31 links)EmailCodeunit 8904 "Email Message" (calls, 9 links)Email MessageCodeunit 8905 "Email Message Impl." (calls, 5 links)Email Message Impl.Codeunit 8711 "Telemetry" (calls, 4 links)TelemetryCodeunit 8906 "Email Editor" (calls, 4 links)Email EditorPage 8882 "Email Outbox" (calls, 4 links)Email OutboxCodeunit 8703 "Feature Telemetry" (calls, 3 links)Feature TelemetryCodeunit 8893 "Email Scenario" (calls, 3 links)Email ScenarioPage 8883 "Sent Emails" (calls, 3 links)Sent EmailsCodeunit 8885 "Email Activities" (calls, 2 links)Email ActivitiesCodeunit 8890 "Send Email" (calls, 2 links)Send EmailCodeunit 8902 "Email Scenario Attach Impl." (calls, 2 links)Email Scenario Attach Impl.Codeunit 8907 "Email Viewer" (calls, 2 links)Email ViewerPage 13 "Email Editor" (calls, 2 links)Email EditorCodeunit 43 "Language" (calls)Codeunit 8889 "Email Account Impl." (calls)Codeunit 8894 "Email Account" (calls)Codeunit 8999 "Email Rate Limit Impl." (calls)Page 12 "Email Viewer" (calls)Page 8888 "Sent Emails List Part" (calls)Page 8930 "Email View Policy List" (calls)

Open in the neighbourhood explorer

One hop out, from the extracted relations and call graph. Up to 40 shown; the sections below list them all.

System Application · System.Email · BC23-30 · source at ea08af5e · facts from BC29

Properties

Property Value
Access Internal
Permissions tabledata “Sent Email” = rimd, tabledata “Email Outbox” = rimd, tabledata “Email Inbox” = rid, tabledata “Email Related Record” = rid, tabledata “Email Message” = r, tabledata “Email Error” = r, tabledata “Email Recipient” = r, tabledata “Email View Policy” = r, tabledata “Email Retry” = r

Event subscriptions

  • EmitSetupTelemetry subscribes to Table “Email View Policy” OnAfterInsertEvent

Procedures

  • SaveAsDraft(EmailMessage: Codeunit "Email Message")
  • SaveAsDraft(EmailMessage: Codeunit "Email Message"; var EmailOutbox: Record "Email Outbox")
  • SaveAsDraft(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"; var EmailOutbox: Record "Email Outbox")
  • Enqueue(EmailMessage: Codeunit "Email Message"; EmailScenario: Enum "Email Scenario"; NotBefore: DateTime)
  • Enqueue(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"; NotBefore: DateTime)
  • Send(EmailMessage: Codeunit "Email Message"; EmailScenario: Enum "Email Scenario"): Boolean
  • Send(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"): Boolean
  • Send(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"; var EmailOutbox: Record "Email Outbox"): Boolean
  • Reply(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"): Boolean + BC25 + BC25 + BC25
  • ReplyAll(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"): Boolean + BC25 + BC25
  • Reply(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"; var EmailOutbox: Record "Email Outbox") + BC25 + BC25 + BC25
  • ReplyAll(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"; var EmailOutbox: Record "Email Outbox") + BC25 + BC25
  • Reply(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"; var EmailOutbox: Record "Email Outbox"; NotBefore: DateTime; InBackground: Boolean; ReplyToAll: Boolean): Boolean + BC25 + BC25 + BC25
  • RetrieveEmails(EmailAccountId: Guid; Connector: Enum "Email Connector"; var EmailInbox: Record "Email Inbox") + BC25 + BC25
  • RetrieveEmails(EmailAccountId: Guid; Connector: Enum "Email Connector"; var EmailInbox: Record "Email Inbox"; var Filters: Record "Email Retrieval Filters" temporary) + BC25 + BC25
  • FindRetrievedEmail(EmailAccountId: Guid; ExternalMessageId: Text; var EmailInbox: Record "Email Inbox"): Boolean + BC28
  • GetMailFolders(EmailAccountId: Guid; Connector: Enum "Email Connector"; var EmailFolders: Record "Email Folders" temporary) + BC27
  • GetEmailCategories(EmailAccountId: Guid; Connector: Enum "Email Connector"; var EmailCategories: Record "Email Categories" temporary) + BC28
  • CreateEmailCategory(EmailAccountId: Guid; Connector: Enum "Email Connector"; CategoryDisplayName: Text; CategoryColor: Text): Text + BC28
  • ApplyEmailCategory(EmailAccountId: Guid; Connector: Enum "Email Connector"; ExternalId: Text; Categories: List of [Text]) + BC28
  • MarkAsRead(EmailAccountId: Guid; Connector: Enum "Email Connector"; ExternalId: Text) + BC25
  • CheckReplySupported(Connector: Enum "Email Connector"): Boolean + BC25
  • CheckAndGetEmailConnectorv2(Connector: Interface "Email Connector"; var Connectorv2: Interface "Email Connector v2"): Boolean + BC25 (obsolete 26.0: Replaced by CheckAndGetEmailConnectorv3.)
  • CheckAndGetEmailConnectorv3(Connector: Interface "Email Connector"; var Connectorv3: Interface "Email Connector v3"): Boolean + BC25 Δ BC27 (obsolete 28.0: Replaced by CheckAndGetEmailConnectorv4.)
  • CheckAndGetEmailConnectorv4(Connector: Interface "Email Connector"; var Connectorv4: Interface "Email Connector v4"): Boolean + BC27 Δ BC28
  • CheckAndGetEmailConnectorv5(Connector: Interface "Email Connector"; var Connectorv5: Interface "Email Connector v5"): Boolean + BC28
  • OpenInEditor(EmailMessage: Codeunit "Email Message"; EmailScenario: Enum "Email Scenario"; IsModal: Boolean): Enum "Email Action"
  • OpenInEditor(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"; IsModal: Boolean): Enum "Email Action"
  • OpenInEditorWithScenario(EmailMessage: Codeunit "Email Message"; EmailAccountId: Guid; EmailConnector: Enum "Email Connector"; IsModal: Boolean; Scenario: Enum "Email Scenario"): Enum "Email Action"
  • AddDefaultAttachments(EmailMessage: Codeunit "Email Message"; EmailScenario: Enum "Email Scenario")
  • FindLastErrorCallStack(EmailOutboxId: BigInteger): Text
  • FindErrorCallStackWithMsgIDAndRetryNo(MessageId: Guid; RetryNo: Integer): Text + BC26
  • ShowSourceRecord(EmailMessageId: Guid)
  • HasRetryDetail(EmailMessageId: Guid): Boolean + BC26
  • HasSourceRecord(EmailMessageId: Guid): Boolean
  • FilterRemovedSourceRecords(var EmailRelatedRecord: Record "Email Related Record")
  • GetSentEmailsForRecord(RecordVariant: Variant; var ResultSentEmails: Record "Sent Email" temporary)
  • GetSentEmailsForRecord(TableId: Integer; SystemId: Guid; var ResultSentEmails: Record "Sent Email" temporary)
  • GetSentEmails(AccountId: Guid; NewerThan: DateTime; var SentEmails: Record "Sent Email" temporary)
  • GetSentEmails(AccountId: Guid; NewerThan: DateTime; SourceTableID: Integer; SourceSystemID: Guid; var SentEmails: Record "Sent Email" temporary)
  • RefreshEmailOutboxForUser(EmailAccountId: Guid; EmailStatus: Enum "Email Status"; var EmailOutboxForUser: Record "Email Outbox" temporary)
  • GetOutboxEmails(AccountId: Guid; EmailStatus: Enum "Email Status"; var EmailOutboxForUser: Record "Email Outbox" temporary)
  • GetOutboxEmails(AccountId: Guid; EmailStatus: Enum "Email Status"; SourceTableID: Integer; SourceSystemID: Guid; var EmailOutboxForUser: Record "Email Outbox" temporary)
  • GetEmailOutboxForRecord(RecordVariant: Variant; var ResultEmailOutbox: Record "Email Outbox" temporary)
  • GetEmailOutboxForRecord(TableId: Integer; SystemId: Guid; var ResultEmailOutbox: Record "Email Outbox" temporary)
  • GetOutboxEmailRecordStatus(MessageId: Guid): Enum "Email Status"
  • GetUserEmailViewPolicy(): Enum "Email View Policy" (internal)
  • CountEmailsInOutbox(EmailStatus: Enum "Email Status"; IsAdmin: Boolean): Integer (internal)
  • CountSentEmails(NewerThan: DateTime; IsAdmin: Boolean): Integer (internal)
  • AddRelation(EmailMessage: Codeunit "Email Message"; TableId: Integer; SystemId: Guid; RelationType: Enum "Email Relation Type"; Origin: Enum "Email Relation Origin")
  • AddRelation(EmailMessageId: Guid; TableId: Integer; SystemId: Guid; RelationType: Enum "Email Relation Type"; Origin: Enum "Email Relation Origin")
  • RemoveRelation(EmailMessage: Codeunit "Email Message"; TableId: Integer; SystemId: Guid): Boolean
  • OpenSentEmails(RecordVariant: Variant) + BC24
  • OpenSentEmails(TableId: Integer; SystemId: Guid) + BC24
  • OpenSentEmails(TableId: Integer; SystemId: Guid; NewerThanDate: DateTime) + BC24
  • GetEmailOutboxSentEmailWithinRateLimit(var SentEmail: Record "Sent Email"; var EmailOutbox: Record "Email Outbox"; AccountId: Guid): Duration
  • GetRecordRef(RecRelatedVariant: Variant; var ResultRecordRef: RecordRef): Boolean (internal)
  • ShowAdminViewPolicyInEffectNotification() + BC24
  • OpenEmailViewPoliciesPage(AdminViewPolicyInEffectNotification: Notification) + BC24
  • UpdateFailedEmailOutboxStatusToError(): Integer + BC27 (internal)

Plus 12 local procedures.

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.

Called by

Recent changes

Deprecations

  • procedure CheckAndGetEmailConnectorv2: Pending 26.0 (#if not CLEAN26), “Replaced by CheckAndGetEmailConnectorv3.”
  • procedure CheckAndGetEmailConnectorv3: Pending 28.0 (#if not CLEAN28), “Replaced by CheckAndGetEmailConnectorv4.”

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: "Email Impl"), then bcatlas_get_procedure_body or bcatlas_get_neighbors on the returned id.

Evidence 1 sources