public IActionResult Contact(ContactFormModel model, EmailAddress information) { if (ModelState.IsValid) { MailKitEmailService emailService = new MailKitEmailService(new EmailServerConfiguration()); EmailMessage msgToSend = new EmailMessage { FromAddresses = new List <ContactFormModel> { model }, ToAddresses = new List <EmailAddress> { information }, Content = $"Message From {model.Name} \n" + $"Email: {model.Email} \n" + $"Message: {model.Message}", Subject = "Contact Form" }; emailService.Send(msgToSend); return(RedirectToAction("Index")); } else { return(Contact()); } }
static async Task SendEmail() { var emailService = new MailKitEmailService( Mock.Of <IMailTransport>(), new SmtpSettings(), Mock.Of <ILogger <MailKitEmailService> >()); await emailService.SendEmailAsync(null); }
public void SendEmailAsync_ExceptionConnected_DoesDisconnect() { var mockTransport = new Mock <IMailTransport>(); mockTransport.Setup(t => t.IsConnected).Returns(true); mockTransport.Setup( t => t.SendAsync( It.IsAny <MimeMessage>(), It.IsAny <CancellationToken>(), It.IsAny <ITransferProgress>())) .ThrowsAsync(new ServiceNotAuthenticatedException()); async Task SendEmailAsync() { var message = new EmailMessage { Sender = new EmailAddress { Address = "*****@*****.**" }, Recipient = new EmailAddress { Address = "*****@*****.**" }, Subject = "subject", }; var service = new MailKitEmailService( mockTransport.Object, new SmtpSettings(), Mock.Of <ILogger <MailKitEmailService> >()); await service.SendEmailAsync(message); } Assert.ThrowsAsync <ServiceNotAuthenticatedException>(SendEmailAsync); mockTransport.Verify( t => t.DisconnectAsync( It.Is <bool>(q => q), It.IsAny <CancellationToken>()), Times.Once()); }
public async Task SendEmailAsync_ConnectsWithExpectedSettings() { const string host = "host"; const int port = 125; var settings = new SmtpSettings { Authentication = new SmtpAuthenticationSettings(), Host = host, Port = port, }; var mockTransport = new Mock <IMailTransport>(); var service = new MailKitEmailService( mockTransport.Object, settings, Mock.Of <ILogger <MailKitEmailService> >()); await service.SendEmailAsync( new EmailMessage { Sender = new EmailAddress { Address = "*****@*****.**" }, Recipient = new EmailAddress { Address = "*****@*****.**" }, Subject = "subject", }); mockTransport.Verify( t => t.ConnectAsync( It.Is <string>(h => h == settings.Host), It.Is <int>(p => p == settings.Port), It.Is <SecureSocketOptions>(s => s == SecureSocketOptions.Auto), It.IsAny <CancellationToken>()), Times.Once()); }