示例#1
0
        public EmailServiceHosting(IEmailService emailService,
                                  EmailServiceConfiguration configuration)
        {
            _configuration = configuration;
            _emailService = emailService;

            ReloadEmailServers();
        }
示例#2
0
        public void Send(BirthdayEmail emailMessage)
        {
            var configuration = new EmailServiceConfiguration
            {
                Credentials = _credentials,
                Port        = 587,
                Smtp        = "smtp.gmail.com",
                Ssl         = true
            };

            _emailSender.Send(configuration, _from.Value, emailMessage.Recipient.Value, emailMessage.Message.ToString());
        }
示例#3
0
        public void Send(EmailServiceConfiguration configuration, string from, string to, string body)
        {
            var client = new SmtpClient(configuration.Smtp, configuration.Port)
            {
                EnableSsl   = configuration.Ssl,
                Credentials = new NetworkCredential(configuration.Credentials.Username, configuration.Credentials.Password)
            };

            client.Send(new MailMessage(from, to)
            {
                Body = body
            });
        }
 public static void AddEmailService(this IServiceCollection services, EmailServiceConfiguration emailServiceConfiguration)
 {
     services.AddSingleton(emailServiceConfiguration);
     services.AddSendGrid(options =>
     {
         options.ApiKey = emailServiceConfiguration.SendGridApiKey;
         options.HttpErrorAsException = true;
         options.ReliabilitySettings  = new ReliabilitySettings(3,
                                                                TimeSpan.FromMilliseconds(100),
                                                                TimeSpan.FromMilliseconds(5_000),
                                                                TimeSpan.FromMilliseconds(200));
     });
     services.AddScoped <ISendGridEmailSender, SendGridEmailSender>();
 }
        public void VerifyGmailServiceCreation()
        {
            string          fromEmailAddress = "*****@*****.**";
            var             emailToGreet     = "*****@*****.**";
            BirthdayMessage message          = new BirthdayMessage(new Name("Foo", "Bar"));
            BirthdayEmail   email            = new BirthdayEmail(EmailAddress.Of(emailToGreet), message);
            var             credentials      = new Credentials("foo", "bar");

            Mock <IEmailSender> serviceSpy = new Mock <IEmailSender>();

            new GmailBirthdaySender(EmailAddress.Of(fromEmailAddress), credentials, serviceSpy.Object).Send(email);

            var expectedConfiguration = new EmailServiceConfiguration
            {
                Ssl         = true,
                Smtp        = "smtp.gmail.com",
                Port        = 587,
                Credentials = credentials
            };

            serviceSpy.Verify(sender => sender.Send(expectedConfiguration, fromEmailAddress, emailToGreet, "Happy birthday dear Foo Bar"));
        }
示例#6
0
 public static void UseEmailService(this IServiceCollection services, EmailServiceConfiguration configuration)
 {
     services.AddSingleton(configuration);
     services.AddSingleton <IEmailService, EmailService>();
     services.AddHostedService <EmailServiceHosting>();
 }