-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for Azure Email Communication Services #14699
Comments
After having the current |
I was thinking about both email and SMS azure services I might handle those if no one planned |
I'd rather keep this issue focused on the email functionality, but keeping further features and extensibility in mind is definitely a plus. On a related note, the base functionality (settings, configuration) should go to a separate
Sounds great! :) |
One more thing: for this feature, we'd need |
That's what I thought about |
Sounds good as the same applies to Azure Blob Storage too. There needs to be a clear distinction that this feature is in effect, so the current (SMTP-based) email functionality should not be enabled for this to work (or indicate that it's behavior is overridden) and make sure that SMTP-based email functionality can remain operational alongside ACS, not force an update on users, e.g., if someone wants to use ACS for SMS 2FA, but wants to stick to their current SMTP-settings for email sending. |
Exactly
I will think about it. @Piedone can we focus on supporting emailing using ACS or shall we consider the integration with other modules such as 2FA? |
Please keep it focused on the basic integration and email functionality for now, but with the possibility of adding further ACS-based features in the future. |
What I already did is something similar, whereas the ACS settings come from If we look closely into AECS the new thing should be added is the connection string, so the sender will be shared for both modules, and while the new should works independently either we have a dependency on |
@BenedekFarkas @Piedone What I already did in the draft PR is separate the basic email settings (Default Sender) - we could add a display name later if we want - from the SMTP settings, this way AECS does not depend on the SMTP feature at all but email feature. Once AECS is enabled it shows the default send from the email feature but we could override it from within the Please let me know if we need to change anything else |
Sounds good! |
The PR is almost ready I just need to add few tests |
I tested the |
Is the code as far as you're concerned complete? |
Yep, I got some comments from that might change the implementation from what we thought about Please have a look and let me know your comments |
Done in #15254. |
Is your feature request related to a problem? Please describe.
Azure now has a new set of resources under the Communication Services (ACS) umbrella, Email Communication Services being one of them. This is a cheaper, Azure-native alternative to SendGrid.
Describe the solution you'd like
The primary way to use it is not through traditional SMTP-server configuration, but a connection string (of two components, endpoint and access key) provided the ACS resource, which allows access to the specific communication service resources attached to it (for example an Email Communication Services instance). This requires a custom implementation to send emails using the corresponding SDK.
OrchardCore.Email doesn't seem to support this scenario at its current state and needs a bit of refactoring (can take inspiration from the structure in O1 for better extensibility). Initial ideas for implementation:
SmtpService
in its current state will throw an error for any other delivery method) and "Azure delivery options" needs only two fields (endpoint and access key). Also make it possible to read these from app configuration.Describe alternatives you've considered
Traditional SMTP-servers, like SendGrid are still available and ACS also supports sending emails through SMTP, but the setup for that is very tedious.
The text was updated successfully, but these errors were encountered: