From 7cabfd3a4271b1207036e0ce3a2b562d0b445bb2 Mon Sep 17 00:00:00 2001 From: Cyrille Chopelet Date: Sun, 25 Jul 2021 14:51:52 +0200 Subject: [PATCH] Allow the use of Mailgun's EU region --- source/config.js | 6 ++++++ source/lib/Staticman.js | 2 ++ source/siteConfig.js | 5 +++++ staticman.sample.yml | 3 +++ 4 files changed, 16 insertions(+) diff --git a/source/config.js b/source/config.js index 0cca8c5f..a537b99b 100644 --- a/source/config.js +++ b/source/config.js @@ -27,6 +27,12 @@ export const schema = { }, }, email: { + apiHost: { + doc: 'The Mailgun host to use. Note that if you are using the EU region the host should be set to `api.eu.mailgun.net`. Will be overridden by a `notifications.apiHost` parameter in the site config, if one is set.', + format: String, + default: 'api.mailgun.net', + env: 'EMAIL_API_HOST' + }, apiKey: { doc: 'Mailgun API key to be used for email notifications. Will be overridden by a `notifications.apiKey` parameter in the site config, if one is set.', diff --git a/source/lib/Staticman.js b/source/lib/Staticman.js index 89411225..c0d50d93 100644 --- a/source/lib/Staticman.js +++ b/source/lib/Staticman.js @@ -357,7 +357,9 @@ export default class Staticman { if (!this.siteConfig.get('notifications.enabled')) return null; // Initialise Mailgun + const mailgunHost = this.siteConfig.get('notifications.apiHost') || config.get('email.apiHost') const mailgun = Mailgun({ + ...(mailgunHost && { host: mailgunHost }), apiKey: this.siteConfig.get('notifications.apiKey') || config.get('email.apiKey'), domain: this.siteConfig.get('notifications.domain') || config.get('email.domain'), }); diff --git a/source/siteConfig.js b/source/siteConfig.js index 21989328..784800ad 100644 --- a/source/siteConfig.js +++ b/source/siteConfig.js @@ -149,6 +149,11 @@ export const schema = { format: Boolean, default: false, }, + apiHost: { + doc: 'Mailgun API host. Note that if you are using the EU region the host should be set to `api.eu.mailgun.net`.', + format: String, + default: 'api.mailgun.net' + }, apiKey: { doc: 'Mailgun API key', format: 'EncryptedString', diff --git a/staticman.sample.yml b/staticman.sample.yml index ce1ccc1e..b079bd0b 100644 --- a/staticman.sample.yml +++ b/staticman.sample.yml @@ -52,6 +52,9 @@ comments: # Enable notifications #enabled: true + # Mailgun API host name. If in EU Region, use 'api.eu.mailgun.net' + #apiHost: api.mailgun.net + # (!) ENCRYPTED # # Mailgun API key