public EmailServiceHosting(IEmailService emailService, EmailServiceConfiguration configuration) { _configuration = configuration; _emailService = emailService; ReloadEmailServers(); }
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()); }
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")); }
public static void UseEmailService(this IServiceCollection services, EmailServiceConfiguration configuration) { services.AddSingleton(configuration); services.AddSingleton <IEmailService, EmailService>(); services.AddHostedService <EmailServiceHosting>(); }