public async Task <OperationResult> SendAsync([FromBody] EmailDto dto) { _logger.Info($"SendAsync TemplateToken = {dto.TemplateToken}; AdobeConnectUrl = {dto.AdobeConnectUrl}; RemoteIpAddress = {Request.HttpContext.Connection.RemoteIpAddress}"); var recipients = _notificationsSettings.RecipientSettings.GetByToken(dto.TemplateToken); var from = _notificationsSettings.GetFrom(recipients); var to = dto.ToEmails.Select(x => new SystemEmail { Email = x.Email, Name = x.Name }).ToList(); var cced = dto.CcEmails != null && dto.CcEmails.Any() ? dto.CcEmails.Select(x => new SystemEmail { Email = x.Email, Name = x.Name }).ToList() : null; var bcced = dto.BccEmails != null && dto.BccEmails.Any() ? dto.BccEmails.Select(x => new SystemEmail { Email = x.Email, Name = x.Name }).ToList() : null; var model = new EmailModel { MailBody = dto.BodyHtml, MailSubject = dto.Subject }; var mailBody = await _templateTransformer.TransformAsync(dto.TemplateToken, model); var sendResult = await _mail.SendEmailAsync(from, to, dto.Subject, mailBody, cced, bcced); return(new OperationResult { IsSuccess = sendResult }); }
public async ValueTask <IHealthCheckResult> CheckAsync(CancellationToken cancellationToken = default(CancellationToken)) { try { var sendResult = await _mail.SendEmailAsync( new SystemEmail { Email = "*****@*****.**" }, new[] { new SystemEmail { Email = "*****@*****.**" } }, "Subject", "Test Body", null, null); return(sendResult ? HealthCheckResult.Healthy("SMTP Check: Healthy") : HealthCheckResult.Unhealthy("SMTP Check: Unhealthy")); } catch (Exception ex) { return(HealthCheckResult.Unhealthy($"SMTP Check: Exception during check: {ex.Message} {ex.GetType().FullName}")); } }