Replace mailjet with mailgun (#180)
This commit is contained in:
parent
6a2e3bc348
commit
3b14a715b4
7 changed files with 245 additions and 36 deletions
|
|
@ -192,7 +192,7 @@ function fetchData () {
|
|||
{code: 'mock-sms', display: 'Mock SMS', class: 'sms'},
|
||||
{code: 'mock-id-verify', display: 'Mock ID verifier', class: 'idVerifier'},
|
||||
{code: 'twilio', display: 'Twilio', class: 'sms'},
|
||||
{code: 'mailjet', display: 'Mailjet', class: 'email'},
|
||||
{code: 'mailgun', display: 'Mailgun', class: 'email'},
|
||||
{code: 'all-zero-conf', display: 'Always 0-conf', class: 'zeroConf', cryptos: ['BTC', 'ZEC', 'LTC', 'DASH', 'BCH']},
|
||||
{code: 'no-zero-conf', display: 'Always 1-conf', class: 'zeroConf', cryptos: ALL_CRYPTOS},
|
||||
{code: 'blockcypher', display: 'Blockcypher', class: 'zeroConf', cryptos: ['BTC']},
|
||||
|
|
|
|||
21
lib/plugins/email/mailgun/mailgun.js
Normal file
21
lib/plugins/email/mailgun/mailgun.js
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
const Mailgun = require('mailgun-js')
|
||||
|
||||
const NAME = 'Mailgun'
|
||||
|
||||
function sendMessage ({apiKey, domain, fromEmail, toEmail}, rec) {
|
||||
const mailgun = Mailgun({apiKey, domain})
|
||||
|
||||
const emailData = {
|
||||
from: `Lamassu Server ${fromEmail}`,
|
||||
to: toEmail,
|
||||
subject: rec.email.subject,
|
||||
text: rec.email.body
|
||||
}
|
||||
|
||||
return mailgun.messages().send(emailData)
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
NAME,
|
||||
sendMessage
|
||||
}
|
||||
|
|
@ -1,23 +0,0 @@
|
|||
const Mailjet = require('node-mailjet')
|
||||
|
||||
const NAME = 'Mailjet'
|
||||
|
||||
function sendMessage (account, rec) {
|
||||
const mailjet = Mailjet.connect(account.apiKey, account.apiSecret)
|
||||
const sendEmail = mailjet.post('send')
|
||||
|
||||
const emailData = {
|
||||
FromEmail: account.fromEmail,
|
||||
FromName: 'Lamassu Server',
|
||||
Subject: rec.email.subject,
|
||||
'Text-part': rec.email.body,
|
||||
Recipients: [{'Email': account.toEmail}]
|
||||
}
|
||||
|
||||
return sendEmail.request(emailData)
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
NAME,
|
||||
sendMessage
|
||||
}
|
||||
219
package-lock.json
generated
219
package-lock.json
generated
|
|
@ -2819,6 +2819,14 @@
|
|||
"resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.4.tgz",
|
||||
"integrity": "sha512-/NdNZVJg+uZgtm9eS3O6lrOLYmQag2DjdEXuPaHlZ6RuVqgqaVZfgYCepEIKsLqwdQArOPtC3XzRLqGGfT8KQQ=="
|
||||
},
|
||||
"es6-promisify": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz",
|
||||
"integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=",
|
||||
"requires": {
|
||||
"es6-promise": "^4.0.3"
|
||||
}
|
||||
},
|
||||
"escape-html": {
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
|
||||
|
|
@ -4957,6 +4965,11 @@
|
|||
"resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
|
||||
"integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
|
||||
},
|
||||
"inflection": {
|
||||
"version": "1.12.0",
|
||||
"resolved": "https://registry.npmjs.org/inflection/-/inflection-1.12.0.tgz",
|
||||
"integrity": "sha1-ogCTVlbW9fa8TcdQLhrstwMihBY="
|
||||
},
|
||||
"inflight": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
|
|
@ -5818,6 +5831,168 @@
|
|||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.6.5.tgz",
|
||||
"integrity": "sha1-5W1jVBSO3o13B7WNFDIg/QjfD9U="
|
||||
},
|
||||
"mailgun-js": {
|
||||
"version": "0.21.0",
|
||||
"resolved": "https://registry.npmjs.org/mailgun-js/-/mailgun-js-0.21.0.tgz",
|
||||
"integrity": "sha512-hqw0jL+GABT61jy3ZpfaLZXGGB2SvTJ9oMM3KwLpdf0WlwAETkjRipQvLiQj/MUNLOT9/bz2O4K+7c1Mt376fw==",
|
||||
"requires": {
|
||||
"async": "^2.6.1",
|
||||
"debug": "~3.1.0",
|
||||
"form-data": "^2.3.2",
|
||||
"inflection": "~1.12.0",
|
||||
"is-stream": "^1.1.0",
|
||||
"path-proxy": "~1.0.0",
|
||||
"promisify-call": "^2.0.2",
|
||||
"proxy-agent": "^3.0.3",
|
||||
"tsscmp": "^1.0.6"
|
||||
},
|
||||
"dependencies": {
|
||||
"agent-base": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz",
|
||||
"integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==",
|
||||
"requires": {
|
||||
"es6-promisify": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"async": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
|
||||
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
|
||||
"requires": {
|
||||
"lodash": "^4.17.10"
|
||||
}
|
||||
},
|
||||
"co": {
|
||||
"version": "4.6.0",
|
||||
"resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
|
||||
"integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "http://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz",
|
||||
"integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=",
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"debug": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
|
||||
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
|
||||
"requires": {
|
||||
"ms": "2.0.0"
|
||||
}
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz",
|
||||
"integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=",
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"http-proxy-agent": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz",
|
||||
"integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==",
|
||||
"requires": {
|
||||
"agent-base": "4",
|
||||
"debug": "3.1.0"
|
||||
}
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.1.tgz",
|
||||
"integrity": "sha512-HPCTS1LW51bcyMYbxUIOO4HEOlQ1/1qRaFWcyxvwaqUS9TY88aoEuHUY33kuAh1YhVVaDQhLZsnPd+XNARWZlQ==",
|
||||
"requires": {
|
||||
"agent-base": "^4.1.0",
|
||||
"debug": "^3.1.0"
|
||||
}
|
||||
},
|
||||
"ip": {
|
||||
"version": "1.1.5",
|
||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
||||
"integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo="
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "4.1.3",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz",
|
||||
"integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==",
|
||||
"requires": {
|
||||
"pseudomap": "^1.0.2",
|
||||
"yallist": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"pac-proxy-agent": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pac-proxy-agent/-/pac-proxy-agent-3.0.0.tgz",
|
||||
"integrity": "sha512-AOUX9jES/EkQX2zRz0AW7lSx9jD//hQS8wFXBvcnd/J2Py9KaMJMqV/LPqJssj1tgGufotb2mmopGPR15ODv1Q==",
|
||||
"requires": {
|
||||
"agent-base": "^4.2.0",
|
||||
"debug": "^3.1.0",
|
||||
"get-uri": "^2.0.0",
|
||||
"http-proxy-agent": "^2.1.0",
|
||||
"https-proxy-agent": "^2.2.1",
|
||||
"pac-resolver": "^3.0.0",
|
||||
"raw-body": "^2.2.0",
|
||||
"socks-proxy-agent": "^4.0.1"
|
||||
}
|
||||
},
|
||||
"pac-resolver": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/pac-resolver/-/pac-resolver-3.0.0.tgz",
|
||||
"integrity": "sha512-tcc38bsjuE3XZ5+4vP96OfhOugrX+JcnpUbhfuc4LuXBLQhoTthOstZeoQJBDnQUDYzYmdImKsbz0xSl1/9qeA==",
|
||||
"requires": {
|
||||
"co": "^4.6.0",
|
||||
"degenerator": "^1.0.4",
|
||||
"ip": "^1.1.5",
|
||||
"netmask": "^1.0.6",
|
||||
"thunkify": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"proxy-agent": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/proxy-agent/-/proxy-agent-3.0.3.tgz",
|
||||
"integrity": "sha512-PXVVVuH9tiQuxQltFJVSnXWuDtNr+8aNBP6XVDDCDiUuDN8eRCm+ii4/mFWmXWEA0w8jjJSlePa4LXlM4jIzNA==",
|
||||
"requires": {
|
||||
"agent-base": "^4.2.0",
|
||||
"debug": "^3.1.0",
|
||||
"http-proxy-agent": "^2.1.0",
|
||||
"https-proxy-agent": "^2.2.1",
|
||||
"lru-cache": "^4.1.2",
|
||||
"pac-proxy-agent": "^3.0.0",
|
||||
"proxy-from-env": "^1.0.0",
|
||||
"socks-proxy-agent": "^4.0.1"
|
||||
}
|
||||
},
|
||||
"smart-buffer": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.0.1.tgz",
|
||||
"integrity": "sha512-RFqinRVJVcCAL9Uh1oVqE6FZkqsyLiVOYEZ20TqIOjuX7iFVJ+zsbs4RIghnw/pTs7mZvt8ZHhvm1ZUrR4fykg=="
|
||||
},
|
||||
"socks": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/socks/-/socks-2.2.1.tgz",
|
||||
"integrity": "sha512-0GabKw7n9mI46vcNrVfs0o6XzWzjVa3h6GaSo2UPxtWAROXUWavfJWh1M4PR5tnE0dcnQXZIDFP4yrAysLze/w==",
|
||||
"requires": {
|
||||
"ip": "^1.1.5",
|
||||
"smart-buffer": "^4.0.1"
|
||||
}
|
||||
},
|
||||
"socks-proxy-agent": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.1.tgz",
|
||||
"integrity": "sha512-Kezx6/VBguXOsEe5oU3lXYyKMi4+gva72TwJ7pQY5JfqUx2nMk7NXA6z/mpNqIlfQjWYVfeuNvQjexiTaTn6Nw==",
|
||||
"requires": {
|
||||
"agent-base": "~4.2.0",
|
||||
"socks": "~2.2.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"make-dir": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.0.0.tgz",
|
||||
|
|
@ -6630,6 +6805,21 @@
|
|||
"integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=",
|
||||
"dev": true
|
||||
},
|
||||
"path-proxy": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-proxy/-/path-proxy-1.0.0.tgz",
|
||||
"integrity": "sha1-GOijaFn8nS8aU7SN7hOFQ8Ag3l4=",
|
||||
"requires": {
|
||||
"inflection": "~1.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"inflection": {
|
||||
"version": "1.3.8",
|
||||
"resolved": "https://registry.npmjs.org/inflection/-/inflection-1.3.8.tgz",
|
||||
"integrity": "sha1-y9Fg2p91sUw8xjV41POWeEvzAU4="
|
||||
}
|
||||
}
|
||||
},
|
||||
"path-to-regexp": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
|
||||
|
|
@ -7012,6 +7202,14 @@
|
|||
"resolved": "https://registry.npmjs.org/promise-sequential/-/promise-sequential-1.1.1.tgz",
|
||||
"integrity": "sha1-956JUO+G56eoW/MgRSZDWS9tL7I="
|
||||
},
|
||||
"promisify-call": {
|
||||
"version": "2.0.4",
|
||||
"resolved": "https://registry.npmjs.org/promisify-call/-/promisify-call-2.0.4.tgz",
|
||||
"integrity": "sha1-1IwtRWUszM1SgB3ey9UzptS9X7o=",
|
||||
"requires": {
|
||||
"with-callback": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"protobufjs": {
|
||||
"version": "5.0.3",
|
||||
"resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-5.0.3.tgz",
|
||||
|
|
@ -7038,11 +7236,15 @@
|
|||
"socks-proxy-agent": "2"
|
||||
}
|
||||
},
|
||||
"proxy-from-env": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.0.0.tgz",
|
||||
"integrity": "sha1-M8UDmPcOp+uW0h97gXYwpVeRx+4="
|
||||
},
|
||||
"pseudomap": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz",
|
||||
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=",
|
||||
"dev": true
|
||||
"integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
|
||||
},
|
||||
"pump": {
|
||||
"version": "1.0.2",
|
||||
|
|
@ -8400,6 +8602,11 @@
|
|||
"integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=",
|
||||
"dev": true
|
||||
},
|
||||
"tsscmp": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/tsscmp/-/tsscmp-1.0.6.tgz",
|
||||
"integrity": "sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA=="
|
||||
},
|
||||
"tunnel-agent": {
|
||||
"version": "0.4.3",
|
||||
"resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz",
|
||||
|
|
@ -8764,6 +8971,11 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"with-callback": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/with-callback/-/with-callback-1.0.2.tgz",
|
||||
"integrity": "sha1-oJYpuakgAo1yFAT7Q1vc/1yRvCE="
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
|
|
@ -8940,8 +9152,7 @@
|
|||
"yallist": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz",
|
||||
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=",
|
||||
"dev": true
|
||||
"integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
|
||||
},
|
||||
"yargs": {
|
||||
"version": "3.32.0",
|
||||
|
|
|
|||
|
|
@ -33,6 +33,7 @@
|
|||
"lnd-async": "^1.2.0",
|
||||
"lodash": "^4.17.10",
|
||||
"longjohn": "^0.2.12",
|
||||
"mailgun-js": "^0.21.0",
|
||||
"make-dir": "^1.0.0",
|
||||
"mem": "^1.1.0",
|
||||
"migrate": "^0.2.2",
|
||||
|
|
@ -42,7 +43,6 @@
|
|||
"nano-markdown": "^1.2.0",
|
||||
"ndjson": "^1.5.0",
|
||||
"node-hkdf-sync": "^1.0.0",
|
||||
"node-mailjet": "^3.2.1",
|
||||
"numeral": "^2.0.3",
|
||||
"p-each-series": "^1.0.0",
|
||||
"pg-native": "^2.2.0",
|
||||
|
|
|
|||
|
|
@ -37740,8 +37740,8 @@ var _user$project$NavBar$view = F2(
|
|||
ctor: '::',
|
||||
_0: {
|
||||
ctor: '_Tuple3',
|
||||
_0: 'Mailjet',
|
||||
_1: _user$project$CoreTypes$AccountRoute('mailjet'),
|
||||
_0: 'Mailgun',
|
||||
_1: _user$project$CoreTypes$AccountRoute('mailgun'),
|
||||
_2: true
|
||||
},
|
||||
_1: {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"code": "mailjet",
|
||||
"display": "Mailjet",
|
||||
"code": "mailgun",
|
||||
"display": "Mailgun",
|
||||
"fields": [
|
||||
{
|
||||
"code": "apiKey",
|
||||
|
|
@ -10,9 +10,9 @@
|
|||
"value": ""
|
||||
},
|
||||
{
|
||||
"code": "apiSecret",
|
||||
"display": "API secret",
|
||||
"fieldType": "password",
|
||||
"code": "domain",
|
||||
"display": "Domain",
|
||||
"fieldType": "string",
|
||||
"required": true,
|
||||
"value": ""
|
||||
},
|
||||
Loading…
Add table
Add a link
Reference in a new issue