Exemple #1
0
        public void SendNotification(string title, string message, MailgunSettings settings)
        {
            try
            {
                var request = BuildRequest(settings, $"{settings.SenderDomain}/messages", HttpMethod.Post, title, message).Build();
                _httpClient.Execute(request);
            }
            catch (HttpException ex)
            {
                if (ex.Response.StatusCode == HttpStatusCode.Unauthorized)
                {
                    throw new MailgunException("Unauthorised - ApiKey is invalid");
                }

                throw new MailgunException("Unable to connect to Mailgun. Status code: {0}", ex);
            }
        }
Exemple #2
0
        private HttpRequestBuilder BuildRequest(MailgunSettings settings, string resource, HttpMethod method, string messageSubject, string messageBody)
        {
            var loginCredentials = new NetworkCredential("api", settings.ApiKey);
            var url            = settings.UseEuEndpoint ? BaseUrlEu : BaseUrlUs;
            var requestBuilder = new HttpRequestBuilder(url).Resource(resource);

            requestBuilder.Method            = method;
            requestBuilder.NetworkCredential = loginCredentials;

            requestBuilder.AddFormParameter("from", $"{settings.From}");

            foreach (var recipient in settings.Recipients)
            {
                requestBuilder.AddFormParameter("to", $"{recipient}");
            }

            requestBuilder.AddFormParameter("subject", $"{messageSubject}");
            requestBuilder.AddFormParameter("text", $"{messageBody}");

            return(requestBuilder);
        }