public async Task SendAsync(HealthCheckResults results)
        {
            if (ShouldSend(results) == false)
            {
                return;
            }

            if (string.IsNullOrEmpty(RecipientEmail))
            {
                return;
            }

            var message = _textService.Localize("healthcheck/scheduledHealthCheckEmailBody", new[]
            {
                DateTime.Now.ToShortDateString(),
                DateTime.Now.ToShortTimeString(),
                results.ResultsAsHtml(Verbosity)
            });

            var subject = _textService.Localize("healthcheck/scheduledHealthCheckEmailSubject");

            var mailSender = new EmailSender();

            using (var mailMessage = new MailMessage(UmbracoConfig.For.UmbracoSettings().Content.NotificationEmailAddress,
                                                     RecipientEmail,
                                                     string.IsNullOrEmpty(subject) ? "Umbraco Health Check Status" : subject,
                                                     message)
            {
                IsBodyHtml = message.IsNullOrWhiteSpace() == false &&
                             message.Contains("<") && message.Contains("</")
            })
            {
                await mailSender.SendAsync(mailMessage);
            }
        }
示例#2
0
        public override async Task SendAsync(HealthCheckResults results, CancellationToken token)
        {
            if (ShouldSend(results) == false)
            {
                return;
            }

            if (string.IsNullOrEmpty(RecipientEmail))
            {
                return;
            }

            var message = _textService.Localize("healthcheck/scheduledHealthCheckEmailBody", new[]
            {
                DateTime.Now.ToShortDateString(),
                DateTime.Now.ToShortTimeString(),
                results.ResultsAsHtml(Verbosity)
            });

            // Include the umbraco Application URL host in the message subject so that
            // you can identify the site that these results are for.
            var host = _runtimeState.ApplicationUrl;

            var subject = _textService.Localize("healthcheck/scheduledHealthCheckEmailSubject", new[] { host.ToString() });

            var mailSender = new EmailSender();

            using (var mailMessage = CreateMailMessage(subject, message))
            {
                await mailSender.SendAsync(mailMessage);
            }
        }
示例#3
0
        public async Task SendAsync(HealthCheckResults results)
        {
            if (ShouldSend(results) == false)
            {
                return;
            }

            if (string.IsNullOrEmpty(RecipientEmail))
            {
                return;
            }

            var message = _textService.Localize("healthcheck/scheduledHealthCheckEmailBody", new[]
            {
                DateTime.Now.ToShortDateString(),
                DateTime.Now.ToShortTimeString(),
                results.ResultsAsHtml(Verbosity)
            });

            // Include the umbraco Application URL host in the message subject so that
            // you can identify the site that these results are for.
            var umbracoApplicationUrl = ApplicationContext.Current.UmbracoApplicationUrl;
            var host = umbracoApplicationUrl;

            if (Uri.TryCreate(umbracoApplicationUrl, UriKind.Absolute, out var umbracoApplicationUri))
            {
                host = umbracoApplicationUri.Host;
            }
            else
            {
                LogHelper.Debug <EmailNotificationMethod>($"umbracoApplicationUrl {umbracoApplicationUrl} appears to be invalid");
            }

            var subject = _textService.Localize("healthcheck/scheduledHealthCheckEmailSubject", new[] { host });

            var mailSender = new EmailSender();

            using (var mailMessage = new MailMessage(UmbracoConfig.For.UmbracoSettings().Content.NotificationEmailAddress,
                                                     RecipientEmail,
                                                     string.IsNullOrEmpty(subject) ? "Umbraco Health Check Status" : subject,
                                                     message)
            {
                IsBodyHtml = message.IsNullOrWhiteSpace() == false &&
                             message.Contains("<") && message.Contains("</")
            })
            {
                await mailSender.SendAsync(mailMessage);
            }
        }