Hi everyone
I’m working on an OutSystems Reactive application and need some help with sending emails that have proper HTML formatting (bold text, paragraphs, line breaks, etc.).
Use case: When a user action happens (like a submission update or approval), we need to send a notification email with dynamic content such as:
Greeting with user name
Bold labels and values (e.g. Object Name: ABC123)
Multiple paragraphs with clean formatting
Constraints:
Reactive app only
Email is triggered from a Server Action
HTML content must be preserved
Want to avoid any Traditional UI or Traditional Email Screen approach
What’s the recommended way or best practice to handle this in a Reactive app? Any guidance or examples would be really helpful.
Thanks in advance for your support! 😊
Hello,
The first point you mentioned: whenever a submission or approval happens, it means a database event has been triggered. For example, a request step has been created, which creates a new record in the request table. You can handle this by using a process that launches on this creation event.
Inside this process, you can add an automatic activity responsible for sending the email. Within this activity, use the SendEmail action (wrapper action) to send your desired email, which you can create in the Interface section Email flow, as shown in the screenshot. You can style the email as you like and include dynamic expressions, such as addressing the recipient by name: Dear [User].
Bonus: you can refer to this link that illustrates how to create an email from the start
How to send an email from your application in OutSystems?
Its a case of the fixed HTML template. You can also try
Note: the HTMLRenderer is generally not recommended for use in custom apps by Outsystems, just for internal system.
Hi @Sherif El-Habibi,Shingo Lam
Thanks for the reply
But as I mentioned, I need to modify the mail content as per the requirement, so this approach is not working in that case.
and when i tried to send html content from the site property its not showing the output as formatted text. instead of that its printing the tag as it is
I’m not sure if I fully understood your point. By dynamic per requirement, do you mean a scenario where one user sees specific content while another user sees different content?
If that’s the case, the same approach still applies by using expressions.
However, if you’re referring to a different use case, could you please provide more details and a concrete scenario so I can better understand your perspective?
I need to update the email body by adding a few more paragraphs and additional information, and also improve the overall formatting of the email content.
For this reason, I am trying to pass HTML content to the email body. However, I am facing issues when implementing this in a Reactive application.
I was able to achieve the same requirement successfully in a Traditional application.
As for dynamic content (where the email body changes based on different users), I already have clarity on that part, so it is not a concern.
In this case, as Shingo mentioned, you can pass the email body as an HTML element. As you pointed out, this can be challenging in Reactive apps, but it can be achieved by handling it manually in the code using a single expression and passing the fixed HTML to it, ensuring that it is properly sanitized.
By the way, this approach was also previously submitted as an idea:
https://www.outsystems.com/ideas/11821/enable-using-html-content-in-email-body-in-reactive-app/
Dear ,
There are some components available in Forge that can help meet your requirement. One example is the following component:
https://www.outsystems.com/forge/component-overview/4920/send-mail-with-binary-attachments-o11
You can use this component as a starting point, test it in your environment, and customize it as needed to fit your specific use case. It provides a good foundation for handling email functionality with binary attachments, which should cover most of your requirements.
Please let me know if you need any assistance with the setup or customization.