Configuration structure changes
parent
35124b515d
commit
6931151665
|
@ -7,7 +7,7 @@ namespace Correo.MailKit
|
|||
{
|
||||
public static class DependencyInjectionExtensions
|
||||
{
|
||||
public static void AddMailKitSmtpClient(this IServiceCollection services, IConfigurationSection configuration)
|
||||
public static void AddMailKitSmtpClient(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.Configure<SmtpClientOptions>(configuration);
|
||||
services.AddTransient<IMailer, MailKitSmtpClient>();
|
||||
|
|
|
@ -7,7 +7,7 @@ namespace Correo.NetSmtpClient
|
|||
{
|
||||
public static class DependencyInjectionExtensions
|
||||
{
|
||||
public static void AddNetSmtpClient(this IServiceCollection services, IConfigurationSection configuration)
|
||||
public static void AddNetSmtpClient(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
services.Configure<SmtpClientOptions>(configuration);
|
||||
services.AddTransient<IMailer, NetSmtpClient>();
|
||||
|
|
|
@ -0,0 +1,10 @@
|
|||
using System;
|
||||
|
||||
namespace Correo.Extensions
|
||||
{
|
||||
internal static class DataTypeExtensions
|
||||
{
|
||||
public static bool EqualsIgnoreCase(this string value1, string value2)
|
||||
=> value1.Equals(value2, StringComparison.InvariantCultureIgnoreCase);
|
||||
}
|
||||
}
|
|
@ -12,20 +12,16 @@ namespace Correo.Extensions
|
|||
{
|
||||
public static void AddSmtpService(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var mediator = configuration.GetValue("SmtpMediator", ".NET");
|
||||
if (mediator.Equals(".NET", StringComparison.InvariantCultureIgnoreCase))
|
||||
var mediator = configuration.GetValue("SmtpMediator", "SmtpClient");
|
||||
if (mediator.EqualsIgnoreCase("SmtpClient"))
|
||||
{
|
||||
services.AddNetSmtpClient(configuration.GetSection("SmtpClient"));
|
||||
services.AddSmtpClient(configuration.GetSection("SmtpClient"));
|
||||
}
|
||||
else if (mediator.Equals("MailKit", StringComparison.InvariantCultureIgnoreCase))
|
||||
{
|
||||
services.AddMailKitSmtpClient(configuration.GetSection("SmtpClient"));
|
||||
}
|
||||
else if (mediator.Equals("SendGrid", StringComparison.InvariantCultureIgnoreCase))
|
||||
else if (mediator.EqualsIgnoreCase("SendGrid"))
|
||||
{
|
||||
services.AddSendGridService(configuration.GetSection("SendGrid"));
|
||||
}
|
||||
else if (mediator.Equals("Mailgun", StringComparison.InvariantCultureIgnoreCase))
|
||||
else if (mediator.EqualsIgnoreCase("Mailgun"))
|
||||
{
|
||||
services.AddMailgunService(configuration.GetSection("Mailgun"));
|
||||
}
|
||||
|
@ -34,5 +30,22 @@ namespace Correo.Extensions
|
|||
throw new NotImplementedException($"SmtpMediator '{mediator}' is not implemented.");
|
||||
}
|
||||
}
|
||||
|
||||
private static void AddSmtpClient(this IServiceCollection services, IConfiguration configuration)
|
||||
{
|
||||
var package = configuration.GetValue("Package", ".NET");
|
||||
if (package.EqualsIgnoreCase(".NET"))
|
||||
{
|
||||
services.AddNetSmtpClient(configuration);
|
||||
}
|
||||
else if (package.EqualsIgnoreCase("MailKit"))
|
||||
{
|
||||
services.AddMailKitSmtpClient(configuration);
|
||||
}
|
||||
else
|
||||
{
|
||||
throw new NotImplementedException($"SmtpClient:Package '{package}' is not implemented.");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -29,8 +29,9 @@
|
|||
"Address": "noreply@homelab.com",
|
||||
"Name": "HomeLab"
|
||||
},
|
||||
"SmtpMediator": ".NET", //.NET, MailKit, SendGrid, Mailgun
|
||||
"SmtpMediator": "SmtpClient", //SmtpClient, SendGrid, Mailgun
|
||||
"SmtpClient": {
|
||||
"Package": "MailKit", //.NET, MailKit
|
||||
"Server": "smtp.gmail.com",
|
||||
"Port": "587",
|
||||
"UseAuthentication": true,
|
||||
|
|
Loading…
Reference in New Issue