Give us feedback
Reactive icon

Email Extended

Stable version 1.0.1 (Compatible with OutSystems 11)
Uploaded on 02 August 2023 by 
 (7 ratings)

Email Extended


Email Extended is a simple yet very useful application and library that allow developers to send emails in any Core Service module without referencing up modules that contain the email definitions.

Usage / Features
No references to Emails modules
If you want just to send emails without upwards (or any) reference, you can call the action SendEmail in the module EmailExtended_lib. The action receives almost the same parameters as the Email node, so it's pretty straightforward to use. The SendEmail action relies on OutSystems Email libraries, this means that email logs and dispatches to the SMTP server act like normal  Email calls.

Custom email lists for each project/app/module/email
If you want to set a different test email list for each project/application/module/email/project you can use the Email Extended app to configure as many list as you want. For each list you can specify which emails addresses () you want to redirect them to.

Note: In order to use Email Extended custom redirect lists, Service Center configuration 'Redirect Emails To Test List' must be turned off. If not, Service Center configurations will prevail.

By disabling this configuration, emails sent using the () Email node will not be redirected to any list! Make sure that if you want to use Email Extended custom lists, you only send emails using the  SendEmail that can be referenced for the module EmailExtended_lib.

Email Address Validation - Check if a given string is an email address
The EmailExtended_lib also include helpers to validate the email addresses.
To validade we can rely on regex validations or we can rely on the parser provided by the .NET Framework. We can parse an email address using the MailAddress class, which internally use MailAddressParser.  Email_isValidEmail action uses this parser to validate an email address.
Email Address Validation - Check if the domain has an email server
Having an email address marked as valid, doesn't mean we'll be able to send an email at this address. If the user types "john@doe.dom" instead of "" (".dom" instead of ".com"), we may send an email to a domain that doesn't exist.

We can avoid this kind of typing errors by checking the provided domain exists and has an email server. Indeed, when you send an email to a recipient, you must first ask the IP address of the email server of the recipient. This information is provided by the DNS server, and more specifically the MX or A entry.
To query the DNS server in .NET, we can use the NuGet package DnsClient (NuGetGitHub) which support .NET and .NET Core.  Email_isValidEmailWithDNSCheck will do that.