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); } }
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); }