/// <summary> /// Добавляет классичекий сервис посылки сообщений электропочты по протоколу SMTP. /// </summary> /// <param name="services">Коллекция сервисов.</param> /// <param name="optionsFunc">Настройки.</param> /// <returns></returns> public static IServiceCollection AddSmtpMailer(this IServiceCollection services, Func <SmtpEmailOptions> optionsFunc) { ArgumentNullException.ThrowIfNull(services, nameof(services)); ArgumentNullException.ThrowIfNull(optionsFunc, nameof(optionsFunc)); SmtpEmailOptions options = optionsFunc.Invoke(); services.AddSingleton(x => options); switch (options.ServiceLifetime) { case ServiceLifetime.Transient: services.AddTransient <ISmtpMailer, MailKitMailer>(); break; default: case ServiceLifetime.Scoped: services.AddScoped <ISmtpMailer, MailKitMailer>(); break; case ServiceLifetime.Singleton: services.AddSingleton <ISmtpMailer, MailKitMailer>(); break; } return(services); }
/// <summary> /// Конструктор. /// </summary> /// <param name="options">Настройки сервиса электропочты.</param> protected SmtpMailer(SmtpEmailOptions options) { Server = options.SmtpServer; Username = options.SmtpUsername; Password = options.SmtpPassword; Port = options.SmtpPort; ConnectionSettings = options.ConnectionSettings; }
public Messenger(ILogger <Messenger> logger, SmtpEmailOptions smtpOptions, EmailProvider gpgEmailProvider) { log = logger ?? throw new ArgumentNullException(nameof(logger)); SmtpOptions = smtpOptions ?? throw new ArgumentNullException(nameof(smtpOptions)); GpgEmailProvider = gpgEmailProvider ?? throw new ArgumentNullException(nameof(gpgEmailProvider)); }
/// <summary> /// Конструктор. /// </summary> /// <param name="options">Настройки сервиса электропочты.</param> /// <param name="logger">Логер.</param> public SystemNetMailer(SmtpEmailOptions options, ILogger <SystemNetMailer> logger) : base(options) { _log = logger; }
public SmtpEmailService(IMailMessageProvider mailMessageProvider, SmtpEmailOptions options) { _mailMessageProvider = mailMessageProvider ?? throw new ArgumentNullException(nameof(mailMessageProvider)); _options = options; }
/// <summary> /// Конструктор. /// </summary> /// <param name="options">Настройки сервиса электропочты.</param> /// <param name="logger">Логер.</param> public MailKitMailer(SmtpEmailOptions options, ILogger <MailKitMailer> logger = null) : base(options) { _log = logger; }