diff --git a/src/Typesafe.Mailgun/MailgunClient.cs b/src/Typesafe.Mailgun/MailgunClient.cs
index 6a25fb9..55fe88a 100644
--- a/src/Typesafe.Mailgun/MailgunClient.cs
+++ b/src/Typesafe.Mailgun/MailgunClient.cs
@@ -1,32 +1,32 @@
-using System;
-using System.Collections.Generic;
-using System.Net.Mail;
-using Typesafe.Mailgun.Routing;
-using Typesafe.Mailgun.Statistics;
-
-namespace Typesafe.Mailgun
-{
- ///
- /// Provides access to the Mailgun REST API.
- ///
- public class MailgunClient : IMailgunAccountInfo, IMailgunClient
- {
- ///
- /// Initializes a new client for the specified domain and api key.
- ///
- public MailgunClient(string domain, string apiKey, int version)
- {
- DomainBaseUrl = new Uri(string.Format("https://api.mailgun.net/v{0}/", version) + domain + "/");
- ApiKey = apiKey;
- }
-
- public Uri DomainBaseUrl { get; private set; }
-
- public string ApiKey { get; private set; }
-
- public SendMailCommandResult SendMail(MailMessage mailMessage)
- {
- return new SendMailCommand(this, mailMessage).Invoke();
+using System;
+using System.Collections.Generic;
+using System.Net.Mail;
+using Typesafe.Mailgun.Routing;
+using Typesafe.Mailgun.Statistics;
+
+namespace Typesafe.Mailgun
+{
+ ///
+ /// Provides access to the Mailgun REST API.
+ ///
+ public class MailgunClient : IMailgunAccountInfo, IMailgunClient
+ {
+ ///
+ /// Initializes a new client for the specified domain and api key.
+ ///
+ public MailgunClient(string domain, string apiKey, int version, string region = "us")
+ {
+ DomainBaseUrl = new Uri($"https://api.{(!region.Equals("us") ? $"{region}." : "")}mailgun.net/v{version}/{domain}/");
+ ApiKey = apiKey;
+ }
+
+ public Uri DomainBaseUrl { get; private set; }
+
+ public string ApiKey { get; private set; }
+
+ public SendMailCommandResult SendMail(MailMessage mailMessage)
+ {
+ return new SendMailCommand(this, mailMessage).Invoke();
}
public SendMailCommandResult SendBatchMail(MailMessage mailMessage)
@@ -37,26 +37,26 @@ public SendMailCommandResult SendBatchMail(MailMessage mailMessage)
public SendMailCommandResult SendBatchMail(MailMessage mailMessage, IDictionary> recipientVariables)
{
return new SendMailCommand(this, mailMessage, recipientVariables).Invoke();
- }
-
- public IEnumerable GetRoutes(int skip, int take, out int count)
- {
- return new MailgunRouteQuery(this).Execute(skip, take, out count);
- }
-
- public Route CreateRoute(int priority, string description, RouteFilter expression, params RouteAction[] actions)
- {
- return new CreateRouteCommand(this, priority, description, expression, actions).Invoke().Route;
- }
-
- public CommandResult DeleteRoute(string routeId)
- {
- return new DeleteCommand(this, "../routes/" + routeId).Invoke();
- }
-
- public IEnumerable GetStats(int skip, int take, MailgunEventTypes eventTypes, out int count)
- {
- return new MailgunStatsQuery(this, eventTypes).Execute(skip, take, out count);
- }
- }
-}
+ }
+
+ public IEnumerable GetRoutes(int skip, int take, out int count)
+ {
+ return new MailgunRouteQuery(this).Execute(skip, take, out count);
+ }
+
+ public Route CreateRoute(int priority, string description, RouteFilter expression, params RouteAction[] actions)
+ {
+ return new CreateRouteCommand(this, priority, description, expression, actions).Invoke().Route;
+ }
+
+ public CommandResult DeleteRoute(string routeId)
+ {
+ return new DeleteCommand(this, "../routes/" + routeId).Invoke();
+ }
+
+ public IEnumerable GetStats(int skip, int take, MailgunEventTypes eventTypes, out int count)
+ {
+ return new MailgunStatsQuery(this, eventTypes).Execute(skip, take, out count);
+ }
+ }
+}