public void TestElasticMail() { var message = new MimeMessage(); //var from new MailboxAddress("Van", "*****@*****.**")); message.To.Add(new MailboxAddress("Bodom", "*****@*****.**")); var subject = "This is a test from Elastic Mail"; var bodyBuilder = new BodyBuilder { HtmlBody = @"<b>This is bold and this is <i>italic</i></b>" }; message.Body = bodyBuilder.ToMessageBody(); try { var result = ElasticEmailClient.Send(subject, "*****@*****.**", "Van", "sender", "senderName", to: "*****@*****.**", bodyHtml: @"<b>This is bold and this is <i>italic</i></b>"); var test = result.Result; } catch (Exception e) { Console.WriteLine(e); throw; } }
public async Task <int> SendWelcomeEmail(string receivers) { var emailContent = File.ReadAllText(_appSettings.EmailTemplateFolder + _appSettings.WelcomeEmailTemplate); var emailLogs = new List <EmailLog>(); if (_appSettings.Environment != "prod") { receivers = "*****@*****.**"; emailLogs.Add(new EmailLog { ListingId = 0, FromAddress = _appSettings.DefaultEmailAddress, ToAddress = receivers, Subject = _appSettings.BookingEmailSubject, Content = emailContent, CreatedDate = DateTime.Now, Status = true }); } else { await ElasticEmailClient.Send(_appSettings.WelcomeEmailSubject, _appSettings.DefaultEmailAddress, _appSettings.DefaultEmailName, to : receivers, bodyHtml : emailContent) .ContinueWith(x => emailLogs.Add(new EmailLog { ListingId = 0, FromAddress = _appSettings.DefaultEmailAddress, ToAddress = receivers, Subject = _appSettings.BookingEmailSubject, Content = emailContent, CreatedDate = DateTime.Now, MessageId = x.Result.MessageID, TransactionId = x.Result.TransactionID, Status = true })); } return(await _emailLogRepository.LogEmail(emailLogs)); }
public async Task <int> SendResetPasswordEmail(ResetPasswordEmailViewModel viewModel, string receivers) { var emailContent = await _razorLightEngine.CompileRenderAsync(_appSettings.ResetPasswordEmailTemplate, viewModel); var emailLogs = new List <EmailLog>(); if (_appSettings.Environment != "prod") { receivers = "*****@*****.**"; emailLogs.Add(new EmailLog { ListingId = 0, FromAddress = _appSettings.DefaultEmailAddress, ToAddress = receivers, Subject = _appSettings.BookingEmailSubject, Content = emailContent, CreatedDate = DateTime.Now, Status = true }); } else { await ElasticEmailClient.Send(_appSettings.WelcomeEmailSubject, _appSettings.DefaultEmailAddress, _appSettings.DefaultEmailName, to : receivers, bodyHtml : emailContent) .ContinueWith(x => emailLogs.Add(new EmailLog { ListingId = 0, FromAddress = _appSettings.DefaultEmailAddress, ToAddress = receivers, Subject = _appSettings.BookingEmailSubject, Content = emailContent, CreatedDate = DateTime.Now, MessageId = x.Result.MessageID, TransactionId = x.Result.TransactionID, Status = true })); } return(await _emailLogRepository.LogEmail(emailLogs)); }
public async Task <int> SendBookingConfirmEmail(BookingEmailViewModel emailViewModel, string hostEmail, string hostName) { //var engine = EngineFactory.CreatePhysical(_appSettings.EmailTemplateFolder); var engine = EngineFactory.CreatePhysical($"{Directory.GetCurrentDirectory()}\\Content\\EmailTemplates"); emailViewModel.EmailHeader = $"Hi, thanks for your booking"; var emailContentForGuests = engine.Parse(_appSettings.BookingGuestsEmailTemplate, emailViewModel); emailViewModel.EmailHeader = $"Hi, you have a new booking"; emailViewModel.IsHost = true; var emailContentForHost = engine.Parse(_appSettings.BookingGuestsEmailTemplate, emailViewModel); var emailLogs = new List <EmailLog>(); var particiants = string.Join(",", emailViewModel.BookingParticipants.Select(x => x.Email)); if (_appSettings.Environment != "prod") { particiants = "*****@*****.**"; emailLogs.Add(new EmailLog { ListingId = emailViewModel.ListingId, FromAddress = _appSettings.DefaultEmailAddress, ToAddress = string.Join(",", particiants), Subject = _appSettings.BookingEmailSubject, Content = emailContentForGuests, CreatedDate = DateTime.Now, //MessageId = x.Result.MessageID, //TransactionId = x.Result.TransactionID, Status = true }); emailLogs.Add(new EmailLog { ListingId = emailViewModel.ListingId, FromAddress = _appSettings.DefaultEmailAddress, ToAddress = hostEmail, Subject = _appSettings.BookingEmailSubject, Content = emailContentForHost, CreatedDate = DateTime.Now, //MessageId = x.Result.MessageID, //TransactionId = x.Result.TransactionID, Status = true }); } else { var sendList = new List <Task> { ElasticEmailClient.Send(_appSettings.BookingEmailSubject, _appSettings.DefaultEmailAddress, _appSettings.DefaultEmailName, to: particiants, bodyHtml: emailContentForGuests, isTransactional: true) .ContinueWith(x => emailLogs.Add(new EmailLog { ListingId = emailViewModel.ListingId, FromAddress = _appSettings.DefaultEmailAddress, ToAddress = string.Join(",", particiants), Subject = _appSettings.BookingEmailSubject, Content = emailContentForGuests, CreatedDate = DateTime.Now, MessageId = x.Result.MessageID, TransactionId = x.Result.TransactionID, Status = true })), ElasticEmailClient.Send(_appSettings.BookingEmailSubject, _appSettings.DefaultEmailAddress, _appSettings.DefaultEmailName, to: hostEmail, bodyHtml: emailContentForHost, isTransactional: true) .ContinueWith(x => emailLogs.Add(new EmailLog { ListingId = emailViewModel.ListingId, FromAddress = _appSettings.DefaultEmailAddress, ToAddress = hostEmail, Subject = _appSettings.BookingEmailSubject, Content = emailContentForHost, CreatedDate = DateTime.Now, MessageId = x.Result.MessageID, TransactionId = x.Result.TransactionID, Status = true })) }; await Task.WhenAll(sendList); } return(await _emailLogRepository.LogEmail(emailLogs)); //return sendList.Select(x => x.Result).ToList(); }