[EmailFile:]

Emails a specific file or files once the report is complete.


Compatibility

The macro can be used in the highlighted input document types only. A greyed-out icon indicates not supported.


Usage

The [EmailFile:] macro can be used to send any file on the file system as an email. The macro can be placed anywhere in a document, and will be removed in completed reports. Any email address used may include an optional display name, in which case the email address (person@domain) must be specified inside angle brackets, e.g. Bob Smith <bob.smith@mycompany.com>. Note that the validity and structure of email addresses are not validated. It is up to the macro user to ensure well-formed addresses are used. Whitespace is ignored.


Updates

v4.42 months ago · July 2026

Added the 'sendIfContainsErrors' parameter to suppress sending the email if the report contains any errors.


Parameters (25)
Mandatory (3)
Parameter TypePurpose Options Default
filePaths
List<String>A list of paths to the files on the file system (relative to your Tenant's root folder). You cannot use folder names, only files. In Legacy Mode you can separate these by a semi-colon. In Normal Mode you can do the same or use a previously created list object. N/A N/A
subject
StringThe e-mail subject. N/A N/A
to
List<String>A semicolon-separated list of e-mail addresses. N/A N/A
Behaviour (2)8 additional
Parameter TypePresencePurpose Options Default
hidden
BooleanOptionalWhether the section of the Word document contained inside the macro should be removed in the final output document (does not affect e-mail content).
  • true
  • false
false
sendIfContainsErrors
BooleanOptionalWhether the e-mail should still be sent if any macro error or system error occurs. For the [Email:] / [EndEmail:] macros this applies to errors within the section between them; for the [EmailReport:] and [EmailFile:] macros it applies to any error anywhere in the report. Set this to 'false' to suppress the e-mail when such an error occurs (for [Email:] sections the content is still included in the output document unless 'hidden' is also set). Defaults to 'true'.
  • true
  • false
true
Additional (8)
Parameter TypePresencePurpose Options Default
desiredExecutionResult
List<ExecutionResult>OptionalIf specified, asserts the expected execution result of the macro. Accepts a single value or a semicolon-separated list of acceptable values (e.g. 'Success;Warning'). The macro executes normally; if the actual result matches any of the desired values, the result is converted to Success. If the actual result does not match, the result is converted to MacroError with a descriptive message. This is primarily used for testing and diagnostic purposes. Valid values are: 'Unknown', 'Success', 'MacroError', 'WorkerStopped', 'Running', 'Warning', 'NeverRun', 'Cancelled', 'Pending', 'Paused', 'SystemError', 'Deferred' and 'Stopped'.
  • Cancelled
  • Deferred
  • MacroError
  • NeverRun
  • Paused
  • Pending
  • Running
  • Stopped
  • Success
  • SystemError
  • Warning
  • WorkerStopped
N/A
errorOnOverflow
BooleanOptionalShould NCalc expression evaluation throw error on Overflow
  • true
  • false
true
expectedType
StringOptionalIf specified, asserts the expected output type of the macro result. The macro executes normally; if the actual type does not match, a macro error is generated. Requires 'storeAs', 'storeAsHidden', or 'storeFormattedValueAs' to be set for typed validation. Valid types include CLR names (e.g. Int32, Int64, Single, Double, Boolean, String, JArray, JObject) and C# keyword aliases (e.g. int, long, float, double, bool, string, uint, ulong, short, ushort, byte, sbyte, decimal, char, object). The special value 'Number' matches any numeric type. N/A N/A
expectedValue
StringOptionalIf specified, asserts the expected output value of the macro result. The macro executes normally; if the actual value does not match, a macro error is generated. When 'storeAs' or 'storeAsHidden' is set, the stored variable value is compared. Otherwise, the document output text is compared. N/A N/A
if
StringOptionalThe condition that must be true in order for the macro to be executed/evaluated. Must either evaluate to true or false, for example: "3+5=8" or "contains('abcd', 'z')". N/A true
mode
MacroModeOptionalThe mode in which variables are stored. In legacy mode (default for Schedules), the variable created is a string and formatted. In normal mode (default for Report Studio), the output variable is stored as a strongly-typed object, e.g. an Int32 or a JArray etc., rather than a formatted string.
  • Legacy
  • Normal
Legacy
obfuscation
ObfuscationTypeOptionalObfuscation type. Use obfuscation to write reports where sensitive data is hidden. When used, ReportMagic guarantees that the same input string will map to the same output string for the whole of the report (but the next time the report runs, it will most likely map to a different value). If you use obfuscation, the property in your macro will not show up and instead, you will see a fake item of the obfuscation type chosen.
  • None
  • UkTown
  • DeviceName
  • Company
  • IpAddress
  • PrivateIpAddress
None
warning
StringOptionalIf specified, adds a warning message for this macro. This is processed as an NCalc, and the warning message will ALWAYS be present and will be the value of the evaluated NCalc expression. N/A N/A
Output (1)2 additional
Parameter TypePresencePurpose Options Default
compressFiles
BooleanOptionalWhether to send each attachment as an individual .zip (compressed) file. Each .zip file will retain the original filename and add the .zip suffix, e.g. 'My Report.docx.zip'.
  • true
  • false
false
Additional (2)
Parameter TypePresencePurpose Options Default
failureText
StringOptionalThe text to display should the macro fail to execute. Note that a poorly-specified macro (e.g. omitting mandatory parameters) will still result in an error message. N/A N/A
failureVariable
StringOptionalThe name of a variable to create should the macro fail to execute. The variable will be a text variable, and will contain either the failure text (only if the failureText parameter is set), otherwise it will contain the exception / failure message. N/A N/A
General (10)2 additional
Parameter TypePresencePurpose Options Default
filePaths
List<String>MandatoryA list of paths to the files on the file system (relative to your Tenant's root folder). You cannot use folder names, only files. In Legacy Mode you can separate these by a semi-colon. In Normal Mode you can do the same or use a previously created list object. N/A N/A
subject
StringMandatoryThe e-mail subject. N/A N/A
to
List<String>MandatoryA semicolon-separated list of e-mail addresses. N/A N/A
bcc
List<String>OptionalA semicolon-separated list of e-mail addresses. N/A N/A
body
StringOptionalThe email body text. This will never appear in the actual report, just in the email. Format this as HTML. For the [EmailReport:] macro, this is the entire body. For the [Email:] macro, this is used to prefix the content between the [Email:] and [EndEmail:] macros. N/A N/A
cc
List<String>OptionalA semicolon-separated list of e-mail addresses. N/A N/A
displayName
StringOptionalThe optional display name (shown in your email application) of the sender. NOTE: you can ONLY change the display name when you have specified a Connection e.g. with the 'connectionName' parameter or in the Configuration JSON section of the Connection. Otherwise email sending uses ReportMagic's default SMTP client and the display name is set by the system. N/A N/A
fileSizeTooBigText
StringOptionalThe text to send in the email if the attachments are too large to send. N/A N/A
from
StringOptionalA single e-mail address. This may not be supported by your email server (i.e. setting the sender to an arbitrary email), and can be omitted to use the default. When the email server does NOT support this, you may receive a System Error when processing the report, so you should check first by testing the macro. NOTE: you can ONLY change the from address when you have specified a Connection e.g. with the 'connectionName' parameter or in the Configuration JSON section of the Connection. Otherwise email sending uses ReportMagic's default SMTP client and the from address is set by the system. In other words, if you set the from address, you must set a Connection, and the email address does NOT need to have been set up anywhere else (you can choose any email but your mail server may not support it). N/A N/A
priority
StringOptionalThe e-mail priority.
  • normal
  • high
  • low
normal
Additional (2)
Parameter TypePresencePurpose Options Default
comment
StringOptionalAdd a comment to make your document template more readable. The comment is discarded in the output document. N/A N/A
connectionName
StringOptionalThe name of the Connection. N/A N/A

Examples (3)

Example 1

This example attaches several files:

[EmailFile: subject=New Bat-Mobile Designs Attached, to=bruce.wayne@gotham.com, priority=high, filePaths=Projects/Cars/New Bat-Mobile.pptx;Projects/Finance/New Bat-Mobile Pricing.docx]

Example 2

This example attaches several files but sends each of them as a compressed .zip file:

[EmailFile: subject=New Bat-Mobile Designs Attached, to=bruce.wayne@gotham.com, priority=high, compressFiles=true]

Example 3

Only send the file(s) if the report contains no errors, using 'sendIfContainsErrors':

[EmailFile: subject=Latest Designs, to=bruce.wayne@gotham.com, filePaths=Projects/Cars/New Bat-Mobile.pptx, sendIfContainsErrors=false]

Reconnection

Reconnection

Reconnection

timed out

timed out

Attempt of

Reload
An unhandled error has occurred. Reload 🗙