Give us feedback
Reactive icon

Email Extended

Stable version 1.0.1 (Compatible with OutSystems 11)
Uploaded on 2 Aug by 
 (7 ratings)

Email Extended

Extends the email capabilities of the platform. With this library you can send emails without referencing the emails' module, and you can set test email list per application.
Read more
No references to Emails modules
If you want just to send emails without upwards (or any) reference, you can call the actionSendEmail in the module EmailExtended_lib. The action receives almost the same parameters as theEmail node, so it's pretty straightforward to use. TheSendEmail action relies on OutSystems Email libraries, this means that email logs and dispatches to the SMTP server act like normalEmail 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.

Email Address Validation - Check if a given string is an email address
The EmailExtended_lib also include helpers to validate the email addresses.
To validate 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 email 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 email 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.

Like my components? Buy me a beer :) and support my work.

Release notes (1.0.1)
  • Upgraded DnsClient from version 1.4.0 to 1.7.0
  • Added cache (configurable via site property, defaults to 1 hour) to DNS checks. This improves performance and reduce the number of DNS request for repeated domains
  • 2 new SendEmail actions
    • SendEmail_WithSimpleValidation - will raise an exception if the email is not valid, does basic validation (Email_isValidEmail)
    • Email_isValidEmailWithDNSCheck - will raise an exception if the email is not valid, does DNS validation over the host part of the email address (Email_isValidEmailWithDNSCheck)
  • Created Service Actions that can be used instead of Server Actions
  • Fixed a bug with the EmailExtended Test List configurations
License (1.0.1)
Reviews (2)
in version 1.0.0
Very clever solution indeed that eliminates the nightmare of upward references for email screens!
in version 1.0.0
Perfect solution to avoid upward references. You have made me very happy.