---
id: object/codeunit/4613
type: object
title: Codeunit 4613 "SMTP Message"
summary: Codeunit 4613 "SMTP Message" in Email - SMTP API (System.Email). 10 public procedures, 1 events. Introduced in BC29, still in BC30.
tier: official
language: en
tags:
  - codeunit
  - email - smtp api
versions:
  introduced: "29"
  last_changed: null
  deprecated: null
review:
  state: derived
  by: null
  at: null
  flags: []
generated:
  at: "2026-10-11T00:31:51.816Z"
  pipeline: 0.2.0
  prompts: {}
  input_hash: 93aeb3e2b802c49bd858ad3e25d2c3d48be33a441c52e16216c6b3cf20419beb
evidence:
  - kind: code
    url: https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Email%20-%20SMTP%20API/app/src/SMTPMessage.Codeunit.al
    title: src/Apps/W1/Email - SMTP API/app/src/SMTPMessage.Codeunit.al (releases/29.x)
    date: null
    commit: ea08af5ef2d6a9b5c5af4a029288abbe2c883220
    t: null
    quote: null
links:
  learn: []
  objects: []
  features: []
  topics: []
  localizations: []
  videos: []
  posts: []
  guidelines: []
  changes:
    - change/bcapps/9637
object_type: codeunit
object_id: 4613
name: SMTP Message
namespace: System.Email
app: Email - SMTP API
extends: null
first_version: "29"
last_version: "30"
present_in:
  - "29"
  - "30"
changed_in: []
source_major: "29"
obsolete: null
countries: []
ms_search_form_ids: []
counts:
  fields: 0
  procedures: 11
  events: 1
  subscribers: 0
relations:
  out: 0
  referenced_by: 0
  pages: 0
  extended_by: 0
  event_subscribers: 0
  calls: 1
  called_by: 2
  implements: 0
---

# Codeunit 4613 "SMTP Message"

> Codeunit 4613 "SMTP Message" in Email - SMTP API (System.Email). 10 public procedures, 1 events. Introduced in BC29, still in BC30.

Email - SMTP API · System.Email · BC29-30 · [source at ea08af5e](https://github.com/microsoft/BCApps/blob/ea08af5ef2d6a9b5c5af4a029288abbe2c883220/src/Apps/W1/Email%20-%20SMTP%20API/app/src/SMTPMessage.Codeunit.al) · facts from BC29

## Properties

| Property | Value |
|---|---|
| Access | Public |

## Events published

- `OnBeforeAddFrom(var FromName: Text; var FromAddress: Text; EmailMessageId: Guid)` (integration): Allows switching of From name and address when sending the email. The email used to connect to the server is still the same and the from address needs to have permission to Send As.

## Procedures

- `AddFrom(Name: Text; Address: Text)`: Add the name and email address the message is being sent from.
- `AddFrom(Name: Text; Address: Text; EmailMessageId: Guid)`: Add the name and email address the message is being sent from.
- `SetToRecipients(Recipients: List of [Text])`: Adds the recipients that this email is being sent to.
- `SetCCRecipients(Recipients: List of [Text])`: Adds the cc recipients that this email is being sent to.
- `SetBCCRecipients(Recipients: List of [Text])`: Adds the bcc recipients that this email is being sent to.
- `SetSubject(Subject: Text)`: Adds the subject of this email.
- `SetBody(Body: Text)`: The body of the email. The body is expected to be HTML formatted.
- `SetBody(Body: Text; HTMLFormatted: Boolean)`: Sets the body of the email.
- `AddAttachment(AttachmentInStream: InStream; AttachmentName: Text): Boolean`: Adds an attachment to the email.
- `GetMessage(var EmailMimeMessage: DotNet MimeMessage)` (internal)

## 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 4614 "SMTP Message Impl"](../codeunit/4614.md) (8 calls: `AddAttachment → AddAttachment`, `AddFrom → AddFrom`, `GetMessage → GetMessage`, …)

## Called by

- [Codeunit 4513 "SMTP Connector Impl."](../codeunit/4513.md) (7 calls: `BuildSMTPMessage → AddAttachment`, `BuildSMTPMessage → AddFrom`, `BuildSMTPMessage → SetBCCRecipients`, …)
- [Codeunit 4615 "MailKit Client"](../codeunit/4615.md) (1 call: `TrySendMessage → GetMessage`)

## Recent changes

- 2026-07-24 [#9637 [Event Requests] Add integration events across base app and SMTP module](../../changes/bcapps/9637.md) (main, BC30, feature)

## Across versions

- Present in: BC29-30
- Changed (declaration) in: none

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