/// <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);
    }
Ejemplo n.º 2
0
 /// <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;
 }
Ejemplo n.º 3
0
 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));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="options">Настройки сервиса электропочты.</param>
 /// <param name="logger">Логер.</param>
 public SystemNetMailer(SmtpEmailOptions options, ILogger <SystemNetMailer> logger) : base(options)
 {
     _log = logger;
 }
Ejemplo n.º 5
0
 public SmtpEmailService(IMailMessageProvider mailMessageProvider, SmtpEmailOptions options)
 {
     _mailMessageProvider = mailMessageProvider ?? throw new ArgumentNullException(nameof(mailMessageProvider));
     _options             = options;
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Конструктор.
 /// </summary>
 /// <param name="options">Настройки сервиса электропочты.</param>
 /// <param name="logger">Логер.</param>
 public MailKitMailer(SmtpEmailOptions options, ILogger <MailKitMailer> logger = null) : base(options)
 {
     _log = logger;
 }