Exemplo n.º 1
0
        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
            });
        }
Exemplo n.º 2
0
        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}"));
            }
        }