Example #1
0
 /// <summary>
 /// Adds the safety mailer proxy for a NullMailer to dependency injection.
 /// </summary>
 /// <param name="services">The services.</param>
 /// <param name="safetyMailerSettings">The safety mailer settings.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <returns>IServiceCollection.</returns>
 public static IServiceCollection AddSafetyMailer
 (
     this IServiceCollection services,
     SafetyMailerSettings safetyMailerSettings,
     NullMailerSettings mailerSettings
 )
 {
     return(AddMailer <SafetyMailer <NullMailer>, SafetyMailerSettings, NullMailer, NullMailerSettings>(
                services,
                mailerSettings,
                safetyMailerSettings));
 }
        /// <summary>
        ///     Initializes a new instance of the <see cref="SafetyMailer{TMailer}" /> class.
        /// </summary>
        /// <param name="mailer">The mailer.</param>
        /// <param name="safetyMailerSettings">The safety mailer settings.</param>
        /// <exception cref="ArgumentException">Safety mailer cannot proxy another implementation of ISafetyMailer</exception>
        public SafetyMailer(TMailer mailer, SafetyMailerSettings safetyMailerSettings)
        {
            if (string.IsNullOrWhiteSpace(safetyMailerSettings.SafeRecipientEmailAddress))
            {
                throw new ArgumentException(
                          "Safety mailer cannot enable safe recipients when SafeRecipientEmailAddress is not specified");
            }

            Mailer = mailer;

            SafetySettings = safetyMailerSettings;
        }
Example #3
0
 /// <summary>
 /// Adds the safety mailer proxy for an IMailer to dependency injection.
 /// </summary>
 /// <typeparam name="TMailer">The type of the t mailer.</typeparam>
 /// <typeparam name="TMailerSettings">The type of the t mailer settings.</typeparam>
 /// <param name="services">The services.</param>
 /// <param name="safetyMailerSettings">The safety mailer settings.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <returns>IServiceCollection.</returns>
 public static IServiceCollection AddSafetyMailer <TMailer, TMailerSettings>
 (
     this IServiceCollection services,
     SafetyMailerSettings safetyMailerSettings,
     TMailerSettings mailerSettings
 )
     where TMailer : class, IMailer <TMailerSettings>
     where TMailerSettings : class, IMailerSettings
 {
     return(AddMailer <SafetyMailer <TMailer>, SafetyMailerSettings, TMailer, TMailerSettings>(
                services,
                mailerSettings,
                safetyMailerSettings));
 }
 /// <summary>
 /// Registers a safety mailer proxy for a MailKit mailer.
 /// </summary>
 /// <param name="factory">The factory.</param>
 /// <param name="safetyMailerSettings">The safety mailer settings.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The history store.</param>
 public static void AddSafetyMailer(
     this MailerFactory factory,
     SafetyMailerSettings safetyMailerSettings,
     MkSmtpMailerSettings mailerSettings,
     ILogger <MkSmtpMailer> logger = null,
     IHistoryStore store           = null)
 {
     factory.Register(() => new SafetyMailer <MkSmtpMailer>(
                          new MkSmtpMailer
                          (
                              mailerSettings,
                              logger ?? factory.DefaultLoggerFactory?.CreateLogger <MkSmtpMailer>(),
                              factory.ConfigureHistoryStoreLogger(store)
                          ),
                          safetyMailerSettings));
 }
Example #5
0
 /// <summary>
 ///     Registers a safety mailer proxy for the specified mailer type.
 /// </summary>
 /// <typeparam name="TMailer">The type of the t mailer.</typeparam>
 /// <typeparam name="TMailerSettings">The type of the t mailer settings.</typeparam>
 /// <param name="factory">The factory.</param>
 /// <param name="safetyMailerSettings">The safety mailer settings.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The store.</param>
 public static void AddSafetyMailer <TMailer, TMailerSettings>
 (
     this MailerFactory factory,
     SafetyMailerSettings safetyMailerSettings,
     TMailerSettings mailerSettings,
     ILogger <NullMailer> logger = null,
     IHistoryStore store         = null
 )
     where TMailer : class, IMailer <TMailerSettings>
     where TMailerSettings : class, IMailerSettings
 {
     factory.Register <SafetyMailer <TMailer>, SafetyMailerSettings, TMailer, TMailerSettings>(
         safetyMailerSettings,
         mailerSettings,
         logger ?? factory.DefaultLoggerFactory?.CreateLogger <NullMailer>(),
         factory.ConfigureHistoryStoreLogger(store));
 }
Example #6
0
 /// <summary>
 /// Registers a safety mailer proxy for a SendGridMailer.
 /// </summary>
 /// <param name="factory">The factory.</param>
 /// <param name="safetyMailerSettings">The safety mailer settings.</param>
 /// <param name="clientFunc">The client function.</param>
 /// <param name="mailerSettings">The mailer settings.</param>
 /// <param name="logger">The logger.</param>
 /// <param name="store">The store.</param>
 public static void AddSafetyMailer
 (
     this MailerFactory factory,
     SafetyMailerSettings safetyMailerSettings,
     Func <SendGridClient> clientFunc,
     SendGridMailerSettings mailerSettings,
     ILogger <SendGridMailer> logger = null,
     IHistoryStore store             = null
 )
 {
     factory.Register(() => new SafetyMailer <SendGridMailer>(
                          new SendGridMailer
                          (
                              clientFunc(),
                              mailerSettings,
                              logger ?? factory.DefaultLoggerFactory?.CreateLogger <SendGridMailer>(),
                              factory.ConfigureHistoryStoreLogger(store)
                          ),
                          safetyMailerSettings));
 }