Table of Contents

Codeunit "Email Message"

ID 8904
Namespace: System.Email

Codeunit to create and manage email messages.

Properties

Name Value
Access Public

Methods

Create

Creates the email with recipients, subject, and body.

procedure Create(ToRecipients: Text, Subject: Text, Body: Text)

Parameters

Name Type Description
ToRecipients Text

The recipient(s) of the email. A string containing the email addresses of the recipients separated by semicolon.

Subject Text

The subject of the email.

Body Text

Raw text that will be used as body of the email.

Create

Creates the email with recipients, subject, and body.

procedure Create(ToRecipients: Text, Subject: Text, Body: Text, HtmlFormatted: Boolean)

Parameters

Name Type Description
ToRecipients Text

The recipient(s) of the email. A string containing the email addresses of the recipients separated by semicolon.

Subject Text

The subject of the email.

Body Text

The body of the email.

HtmlFormatted Boolean

Whether the body is HTML formatted.

Create

Creates the email with recipients, subject, and body.

procedure Create(ToRecipients: Text, Subject: Text, Body: Text, HtmlFormatted: Boolean, Sanitize: Boolean)

Parameters

Name Type Description
ToRecipients Text

The recipient(s) of the email. A string containing the email addresses of the recipients separated by semicolon.

Subject Text

The subject of the email.

Body Text

The body of the email.

HtmlFormatted Boolean

Whether the body is HTML formatted.

Sanitize Boolean

If the body is of HTML formatting, most of it will be sanitized. Keeping only tags and no styling.

Remarks

Sanitize is only applicable if the body is HTML formatted. It also helps prevent potential email messages from hiding images and text from the user.

Create

Creates the email with recipients, subject, and body.

procedure Create(ToRecipients: List of [Text], Subject: Text, Body: Text, HtmlFormatted: Boolean)

Parameters

Name Type Description
ToRecipients List of [Text]

The recipient(s) of the email. A list of email addresses the email will be send directly to.

Subject Text

The subject of the email.

Body Text

The body of the email

HtmlFormatted Boolean

Whether the body is HTML formatted

Create

Creates the email with recipients, subject, and body.

procedure Create(ToRecipients: List of [Text], Subject: Text, Body: Text, HtmlFormatted: Boolean, CCRecipients: List of [Text], BCCRecipients: List of [Text])

Parameters

Name Type Description
ToRecipients List of [Text]

The recipient(s) of the email. A list of email addresses the email will be send directly to.

Subject Text

The subject of the email.

Body Text

The body of the email.

HtmlFormatted Boolean

Whether the body is HTML formatted.

CCRecipients List of [Text]

The CC recipient(s) of the email. A list of email addresses that will be listed as CC.

BCCRecipients List of [Text]

TThe BCC recipient(s) of the email. A list of email addresses that will be listed as BCC.

CreateReply

Creates the email reply with recipients, subject, and body.

procedure CreateReply(ToRecipients: Text, Subject: Text, Body: Text, HtmlFormatted: Boolean, ExternalId: Text)

Parameters

Name Type Description
ToRecipients Text

The recipient(s) of the email. A string containing the email addresses of the recipients separated by semicolon.

Subject Text

The subject of the email.

Body Text

The body of the email.

HtmlFormatted Boolean

Whether the body is HTML formatted.

ExternalId Text

The external message id to reply to.

CreateReply

Creates the email reply with recipients, subject, and body.

procedure CreateReply(ToRecipients: List of [Text], Subject: Text, Body: Text, HtmlFormatted: Boolean, ExternalId: Text)

Parameters

Name Type Description
ToRecipients List of [Text]

The recipient(s) of the email. A list of email addresses the email will be send directly to.

Subject Text

The subject of the email.

Body Text

The body of the email.

HtmlFormatted Boolean

Whether the body is HTML formatted.

ExternalId Text

The external message id to reply to.

CreateReply

Creates the email reply with recipients, subject, and body.

procedure CreateReply(ToRecipients: List of [Text], Subject: Text, Body: Text, HtmlFormatted: Boolean, ExternalId: Text, CCRecipients: List of [Text], BCCRecipients: List of [Text])

Parameters

Name Type Description
ToRecipients List of [Text]

The recipient(s) of the email. A list of email addresses the email will be send directly to.

Subject Text

The subject of the email.

Body Text

The body of the email.

HtmlFormatted Boolean

Whether the body is HTML formatted.

ExternalId Text

The external message id to reply to.

CCRecipients List of [Text]

The CC recipient(s) of the email. A list of email addresses that will be listed as CC.

BCCRecipients List of [Text]

TThe BCC recipient(s) of the email. A list of email addresses that will be listed as BCC.

CreateReplyAll

Creates the email replying to all existing recipents on the mail thread, subject, and body.

procedure CreateReplyAll(Subject: Text, Body: Text, HtmlFormatted: Boolean, ExternalId: Text)

Parameters

Name Type Description
Subject Text

The subject of the email.

Body Text

The body of the email.

HtmlFormatted Boolean

Whether the body is HTML formatted.

ExternalId Text

The external message id to reply to.

Get

Gets the email message with the given ID.

procedure Get(MessageId: Guid): Boolean

Parameters

Name Type Description
MessageId Guid

The ID of the email message to get.

Returns

Type Description
Boolean

True if the email was found; otherwise - false.

DeleteOrphanedMessages

Deletes messages that does not have a reference from either the email outbox nor sent email. This functionality is only needed if email messages have been created without any email outbox or sent email referencing it, otherwise they will be cleaned up automatically.

procedure DeleteOrphanedMessages(StartMessageId: Guid, MessagesToIterate: Integer): Guid

Parameters

Name Type Description
StartMessageId Guid

The email message id to start from. Using empty guid will start from the beginning.

MessagesToIterate Integer

Number of email messages to loop over.

Returns

Type Description
Guid

The next email message id to be checked. Returns empty guid if there are no more messages.

DeleteEmailRecipientsIfOrphaned

Deletes email recipients that do not have a reference from email message. This functionality is only needed if email recipients have been created without any email message referencing it, otherwise they will be cleaned up automatically.

procedure DeleteEmailRecipientsIfOrphaned(StartMessageId: Guid, MessagesToIterate: Integer): Guid

Parameters

Name Type Description
StartMessageId Guid

The email message id to start from. Using empty guid will start from the beginning.

MessagesToIterate Integer

Number of email messages to loop over.

Returns

Type Description
Guid

The next email message id to be checked. Returns empty guid if there are no more messages.

Remarks

Only the recipients that are not referenced by any email message will be deleted.

GetBody

Gets the body of the email message.

procedure GetBody(): Text

Returns

Type Description
Text

The body of the email.

SetBody

Sets the body of the email message.

procedure SetBody(Body: Text)

Parameters

Name Type Description
Body Text

The body to set to the email message.

AppendToBody

Appends to the body of the email message.

The value to append to the body of the email message.
procedure AppendToBody(Value: Text)

Parameters

Name Type Description
Value Text

GetExternalId

procedure GetExternalId(): Text[2048]

Returns

Type Description
Text[2048]

GetSubject

Gets the subject of the email message.

procedure GetSubject(): Text[2048]

Returns

Type Description
Text[2048]

The subject of the email.

SetSubject

Sets the subject of the email message.

procedure SetSubject(Subject: Text)

Parameters

Name Type Description
Subject Text

The subject to set to the email message.

IsBodyHTMLFormatted

Checks if the email body is formatted in HTML.

procedure IsBodyHTMLFormatted(): Boolean

Returns

Type Description
Boolean

True if the email body is formatted in HTML; otherwise - false.

SetBodyHTMLFormatted

Sets whether the email body is formatted in HTML.

True if the email body is formatted in HTML; otherwise - false.
procedure SetBodyHTMLFormatted(Value: Boolean)

Parameters

Name Type Description
Value Boolean

GetId

Gets the ID of the email message.

procedure GetId(): Guid

Returns

Type Description
Guid

The ID of the email.

GetRecipients

Gets the recipents of a certain type of the email message.

procedure GetRecipients(RecipientType: Enum "Email Recipient Type", var Recipients: List of [Text])

Parameters

Name Type Description
RecipientType System.Email."Email Recipient Type"

Specifies the type of the recipients.

Recipients List of [Text]

Out parameter filled with the recipients' email addresses.

SetRecipients

Sets the recipents of a certain type of the email message.

procedure SetRecipients(RecipientType: Enum "Email Recipient Type", Recipients: Text)

Parameters

Name Type Description
RecipientType System.Email."Email Recipient Type"

Specifies the type of the recipients.

Recipients Text

Specifies the list of the recipients' email addresses as a semicolon (;) separated list.

SetRecipients

Sets the recipents of a certain type of the email message.

procedure SetRecipients(RecipientType: Enum "Email Recipient Type", Recipients: List of [Text])

Parameters

Name Type Description
RecipientType System.Email."Email Recipient Type"

Specifies the type of the recipients.

Recipients List of [Text]

Specifies the list of the recipients' email addresses.

AddRecipient

Adds a recipient of a certain type to the email message.

procedure AddRecipient(RecipientType: Enum "Email Recipient Type", Recipient: Text)

Parameters

Name Type Description
RecipientType System.Email."Email Recipient Type"

Specifies the type of the recipient.

Recipient Text

Specifies the recipient's email address.

AddAttachment

Adds a file attachment to the email message.

procedure AddAttachment(AttachmentName: Text[250], ContentType: Text[250], AttachmentBase64: Text)

Parameters

Name Type Description
AttachmentName Text[250]

The name of the file attachment.

ContentType Text[250]

The Content Type of the file attachment.

AttachmentBase64 Text

The Base64 text representation of the attachment.

AddAttachment

Adds a file attachment to the email message.

procedure AddAttachment(AttachmentName: Text[250], ContentType: Text[250], AttachmentInStream: InStream)

Parameters

Name Type Description
AttachmentName Text[250]

The name of the file attachment.

ContentType Text[250]

The Content Type of the file attachment.

AttachmentInStream InStream

The instream of the attachment.

AddAttachment

Adds a file attachment to the email message.

procedure AddAttachment(AttachmentName: Text[250], ContentType: Text[250], InLine: Boolean, ContentId: Text[40], AttachmentInStream: InStream)

Parameters

Name Type Description
AttachmentName Text[250]

The name of the file attachment.

ContentType Text[250]

The Content Type of the file attachment.

InLine Boolean

Specifies whether the attachment is inline.

ContentId Text[40]

The Content ID of the file attachment.

AttachmentInStream InStream

The instream of the attachment.

AddAttachmentFromScenario

Adds attachments from scenario to the email message.

procedure AddAttachmentFromScenario(var EmailAttachments: Record "Email Attachments" temporary)

Parameters

Name Type Description
EmailAttachments Record "Email Attachments" temporary

The reference to the email attachments

Attachments_DeleteContent

Deletes the contents of the currently selected attachment.

procedure Attachments_DeleteContent(): Boolean

Returns

Type Description
Boolean

Returns true if contents was successfully deleted, otherwise false.

Attachments_DeleteContent

Deletes the contents of the currently selected attachment.

procedure Attachments_DeleteContent(BypassSentCheck: Boolean): Boolean

Parameters

Name Type Description
BypassSentCheck Boolean

If true, the attachment content will be deleted even if the email message has been sent.

Returns

Type Description
Boolean

Returns true if contents was successfully deleted, otherwise false.

Attachments_Delete

Deletes the currently selected attachment.

procedure Attachments_Delete(): Boolean

Returns

Type Description
Boolean

Returns true if attachment was successfully deleted, otherwise false.

Attachments_Delete

Deletes the currently selected attachment.

procedure Attachments_Delete(BypassSentCheck: Boolean): Boolean

Parameters

Name Type Description
BypassSentCheck Boolean

If true, the attachment will be deleted even if the email message has been sent.

Returns

Type Description
Boolean

Returns true if attachment was successfully deleted, otherwise false.

Attachments_First

Finds the first attachment of the email message.

procedure Attachments_First(): Boolean

Returns

Type Description
Boolean

True if there is any attachment; otherwise - false.

Attachments_Next

Finds the next attachment of the email message.

procedure Attachments_Next(): Integer

Returns

Type Description
Integer

The ID of the next attachment if it was found; otherwise - 0.

Attachments_GetId

Gets the Id of the current attachment

procedure Attachments_GetId(): BigInteger

Returns

Type Description
BigInteger

The ID of the current attachment.

Attachments_GetName

Gets the name of the current attachment.

procedure Attachments_GetName(): Text[250]

Returns

Type Description
Text[250]

The name of the current attachment.

Attachments_GetContent

Gets the content of the current attachment.

procedure Attachments_GetContent(var AttachmentInStream: InStream)

Parameters

Name Type Description
AttachmentInStream InStream

Out parameter with the content of the current attachment.

Attachments_GetContentBase64

Gets the content of the current attachment in Base64 encoding.

procedure Attachments_GetContentBase64(): Text

Returns

Type Description
Text

The content of the current attachment in Base64 encoding.

Attachments_GetContentType

Gets the content type of the current attachment.

procedure Attachments_GetContentType(): Text[250]

Returns

Type Description
Text[250]

The content type of the current attachment.

Attachments_GetContentId

Gets the content ID of the current attachment.

procedure Attachments_GetContentId(): Text[40]

Returns

Type Description
Text[40]

The content ID of the current attachment.

Remarks

This value is filled only if the attachment is inline the email body.

Attachments_GetLength

Gets the content length of the current attachment.

procedure Attachments_GetLength(): Integer

Returns

Type Description
Integer

The content length of the current attachment.

Attachments_IsInline

Checks if the attachment is inline the message body.

procedure Attachments_IsInline(): Boolean

Returns

Type Description
Boolean

True if the attachment is inline the message body; otherwise - false.

GetRelatedAttachments

Gets the related attachments.

procedure GetRelatedAttachments(var EmailRelatedAttachments: Record "Email Related Attachment" temporary): Boolean

Parameters

Name Type Description
EmailRelatedAttachments Record "Email Related Attachment" temporary

Out parameter with the related attachments.

Returns

Type Description
Boolean

True if any related attachments were found; otherwise - false

Events

OnGetAttachmentContent

Integration event to provide the stream of data for a given MediaID. If attachment content has been deleted, this event makes it possible to provide the data from elsewhere.

[IntegrationEvent(False,False)]
internal procedure OnGetAttachmentContent(MediaID: Guid, var InStream: InStream, var Handled: Boolean)

Parameters

Name Type Description
MediaID Guid

Id of the underlying media field that contains the attachment data.

InStream InStream

Stream to that should pointed to the attachment data.

Handled Boolean

Was the attachment content added to the stream.

See also