Sending emails
- Aufy core library provides email sending abstraction in form of interfaces for each type of email.
- IAufyEmailConfirmationEmailSender - sends email with confirmation link.
- IAufyPasswordResetEmailSender - sends email with password reset link.
- Aufy comes with FluentEmail library out of the box, but you can easily replace it with your own implementation.
- FluentEmail comes in a separate package
Aufy.FluentEmail.
Configuration
Install Aufy.FluentEmail nuget package and register FluentEmail services using AddFluentEmail extension method.
builder.Services .AddAufy<AufyUser>(builder.Configuration) .AddEntityFrameworkStore<ApplicationDbContext>() .AddFluentEmail();If you already use FluentEmail in your project, you need to pass false as a parameter to AddEmailSender method.
This will skip registration of ISender service and use your existing registration.
builder.Services .AddAufy<AUfyUser>(builder.Configuration) .AddEntityFrameworkStore<ApplicationDbContext>() .AddFluentEmail(registerMailKitSender: false);By default, FluentEmail integration will try to read FluentEmail section from your appsettings file.
Optionally, you can configure FluentEmailOptions using Configure<FluentEmailOptions> method.
builder.Services.Configure<FluentEmailOptions>(/* configure options */);- If you already use FluentEmail in your project you can skip configuration of properties with
Smtpprefix.
{ "FluentEmail": { "SmtpHost": "[YOUR_HOST]", "SmtpPort": 1025, "SmtpUsername": "[YOUR_USERNAME]", "SmtpPassword": "[YOUR_`PASSWORD]",
"FromEmail": "from_your_email@host.host", "FromName": "Your Sender Name" }}Templates
- Fluent Email integration uses Fluid template engine to render email templates, which is based on Liquid markup language.
- FluentEmail integration comes with default templates that are embedded in the package.
Default templates can be overridden by providing your own templates in the
FluentEmailsection of your appsettings file. - There is also a possibility to provide custom email subject.
{ "FluentEmail": { "Emails":{ "Confirmation": { "TemplatePath": "PATH_TO_TEMPLATE/Confirmation.html", "Subject": "Just confirm!!!" } } }}Those options can be configured using FluentEmailOptions configuration.
builder.Services.Configure<FluentEmailOptions>(/* configure options */);