aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Soltys <[email protected]>2022-06-10 02:28:18 -0400
committerAdam Soltys <[email protected]>2022-06-10 02:29:18 -0400
commitb43147612face13a481eb01f79e43c753d10b34f (patch)
treed877eedf68b464efc7c8110925126fb743a8bbc9
parentc1dff6b22b1e9659943be4ab98b9e0c06e4b11e2 (diff)
downloadcoinos-server-b43147612face13a481eb01f79e43c753d10b34f.tar.gz
coinos-server-b43147612face13a481eb01f79e43c753d10b34f.zip
send email with postmark
-rw-r--r--index.js21
-rw-r--r--package.json1
-rw-r--r--pnpm-lock.yaml149
3 files changed, 156 insertions, 15 deletions
diff --git a/index.js b/index.js
index 07576f11..3e0cd436 100644
--- a/index.js
+++ b/index.js
@@ -109,6 +109,27 @@ app.post("/email", async (req, res) => {
let file = persist("data/emails.json");
file.emails = [...file.emails, req.body];
res.send({ ok: true });
+
+ try {
+ // Require:
+ var postmark = require("postmark");
+
+ // Send an email:
+ var client = new postmark.ServerClient(
+ config.postmark
+ );
+
+ client.sendEmail({
+ Subject: "Email Signup",
+ HtmlBody: JSON.stringify(req.body),
+ TextBody: JSON.stringify(req.body),
+ MessageStream: "outbound"
+ });
+ } catch(e) {
+ console.log("problem sending email", e);
+ }
} catch (e) {
console.log(e);
}
diff --git a/package.json b/package.json
index 40f96ae3..070f9618 100644
--- a/package.json
+++ b/package.json
@@ -52,6 +52,7 @@
"pino": "^6.13.2",
"pino-pretty": "^7.0.0",
"pm2": "^5.2.0",
+ "postmark": "^3.0.11",
"query-string": "^6.13.1",
"sequelize": "^5.21.3",
"sqlite3": "^5.0.2",
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 2f5e0809..bd05d57d 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -1,4 +1,4 @@
-lockfileVersion: 5.3
+lockfileVersion: 5.4
specifiers:
'@asoltys/bitcoin-core': ^3.0.7
@@ -44,6 +44,7 @@ specifiers:
pino: ^6.13.2
pino-pretty: ^7.0.0
pm2: ^5.2.0
+ postmark: ^3.0.11
prettier: ^1.18.2
query-string: ^6.13.1
sequelize: ^5.21.3
@@ -80,7 +81,7 @@ dependencies:
http-proxy-middleware: 0.20.0
imap: 0.8.19
jsonwebtoken: 8.5.1
- knex: 0.95.11_305ac8a2f3555d00db92ee05fbd9623c
+ knex: 0.95.11_gbnmrixtkvoqbw4s5yc7xwlchq
lightning: 3.5.0
liquidjs-lib: github.com/asoltys/liquidjs-lib/4a0bb0c4b38d327ec247d49e89219798fb0b28e2
lnurl: 0.19.0
@@ -99,6 +100,7 @@ dependencies:
pino: 6.13.3
pino-pretty: 7.0.1
pm2: 5.2.0
+ postmark: 3.0.11
query-string: 6.14.1
sequelize: 5.22.4
sqlite3: 5.0.2
@@ -428,6 +430,12 @@ packages:
pretty-format: 27.5.1
dev: false
+ /@types/keyv/3.1.4:
+ resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
+ dependencies:
+ '@types/node': 16.10.3
+ dev: false
+
/@types/long/4.0.1:
resolution: {integrity: sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==}
dev: false
@@ -477,6 +485,12 @@ packages:
form-data: 2.5.1
dev: false
+ /@types/responselike/1.0.0:
+ resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
+ dependencies:
+ '@types/node': 16.10.3
+ dev: false
+
/@types/serve-static/1.13.10:
resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==}
dependencies:
@@ -569,7 +583,7 @@ packages:
dev: false
/ansi-regex/2.1.1:
- resolution: {integrity: sha1-w7M6te42DYbg5ijwRorn7yfWVN8=}
+ resolution: {integrity: sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA==}
engines: {node: '>=0.10.0'}
dev: false
@@ -749,6 +763,14 @@ packages:
- debug
dev: false
+ /axios/0.25.0:
+ resolution: {integrity: sha512-cD8FOb0tRH3uuEe6+evtAbgJtfxr7ly3fQjYcMcuPlgkwVS9xboaVIpcDV+cYQe+yGykgwZCs1pzjntcGa6l5g==}
+ dependencies:
+ follow-redirects: 1.15.1
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
/balanced-match/1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
dev: false
@@ -840,7 +862,7 @@ packages:
dev: false
/bip66/1.1.5:
- resolution: {integrity: sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=}
+ resolution: {integrity: sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==}
dependencies:
safe-buffer: 5.2.1
dev: false
@@ -955,6 +977,8 @@ packages:
qs: 6.7.0
raw-body: 2.4.0
type-is: 1.6.18
+ transitivePeerDependencies:
+ - supports-color
dev: false
/bolt07/1.7.3:
@@ -1246,7 +1270,7 @@ packages:
dev: false
/color-name/1.1.3:
- resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=}
+ resolution: {integrity: sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==}
dev: false
/color-name/1.1.4:
@@ -1300,6 +1324,8 @@ packages:
on-headers: 1.0.2
safe-buffer: 5.1.2
vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
dev: false
/concat-map/0.0.1:
@@ -1454,20 +1480,59 @@ packages:
/debug/2.6.9:
resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
dependencies:
ms: 2.0.0
dev: false
+ resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.0.0
+ supports-color: 5.5.0
+ dev: false
+
/debug/3.1.0:
resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
dependencies:
ms: 2.0.0
dev: false
/debug/3.2.7:
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.3
+ dev: false
+
+ resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
dependencies:
ms: 2.1.3
+ supports-color: 5.5.0
dev: false
/debug/4.3.2:
@@ -1799,6 +1864,8 @@ packages:
parseurl: 1.3.3
safe-buffer: 5.2.1
uid-safe: 2.1.5
+ transitivePeerDependencies:
+ - supports-color
dev: false
/express/4.17.1:
@@ -1835,6 +1902,8 @@ packages:
type-is: 1.6.18
utils-merge: 1.0.1
vary: 1.1.2
+ transitivePeerDependencies:
+ - supports-color
dev: false
/extend/3.0.2:
@@ -1919,6 +1988,8 @@ packages:
parseurl: 1.3.3
statuses: 1.5.0
unpipe: 1.0.0
+ transitivePeerDependencies:
+ - supports-color
dev: false
/flatstr/1.0.12:
@@ -1947,6 +2018,16 @@ packages:
debug: 4.3.2
dev: false
+ /follow-redirects/1.15.1:
+ resolution: {integrity: sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: false
+
/forever-agent/0.6.1:
resolution: {integrity: sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=}
dev: false
@@ -2083,6 +2164,8 @@ packages:
file-uri-to-path: 1.0.0
ftp: 0.3.10
readable-stream: 2.3.7
+ transitivePeerDependencies:
+ - supports-color
dev: false
/get-uri/3.0.2:
@@ -2109,8 +2192,15 @@ packages:
assert-plus: 1.0.0
dev: false
- /git-node-fs/1.0.0:
+ /git-node-fs/[email protected]:
resolution: {integrity: sha1-SbIV4kLr5Dqkx1Ybu6SZUhdSCA8=}
+ peerDependencies:
+ js-git: ^0.7.8
+ peerDependenciesMeta:
+ js-git:
+ optional: true
+ dependencies:
+ js-git: 0.7.8
dev: false
/git-sha1/0.1.2:
@@ -2148,6 +2238,8 @@ packages:
dependencies:
'@sindresorhus/is': 0.14.0
'@szmarczak/http-timer': 1.1.2
+ '@types/keyv': 3.1.4
+ '@types/responselike': 1.0.0
cacheable-request: 6.1.0
decompress-response: 3.3.0
duplexer3: 0.1.4
@@ -2261,6 +2353,8 @@ packages:
dependencies:
agent-base: 4.3.0
debug: 3.1.0
+ transitivePeerDependencies:
+ - supports-color
dev: false
/http-proxy-agent/4.0.1:
@@ -2291,7 +2385,7 @@ packages:
engines: {node: '>=8.0.0'}
dependencies:
eventemitter3: 4.0.7
- follow-redirects: 1.14.4
+ follow-redirects: 1.15.1
requires-port: 1.0.0
transitivePeerDependencies:
- debug
@@ -2319,6 +2413,8 @@ packages:
dependencies:
agent-base: 4.3.0
debug: 3.2.7
+ transitivePeerDependencies:
+ - supports-color
dev: false
/https-proxy-agent/5.0.0:
@@ -2678,7 +2774,7 @@ packages:
json-buffer: 3.0.0
dev: false
- /knex/0.95.11_305ac8a2f3555d00db92ee05fbd9623c:
+ /knex/0.95.11_gbnmrixtkvoqbw4s5yc7xwlchq:
resolution: {integrity: sha512-grDetD91O8VoQVCFqeWTgkzdq5406W6rggF/lK1hHuwzmjDs/0m9KxyncGdZbklTi7aUgHvw3+Cfy4x7FvpdaQ==}
engines: {node: '>=10'}
hasBin: true
@@ -2768,6 +2864,7 @@ packages:
psbt: 1.1.10
transitivePeerDependencies:
- bignumber.js
+ - supports-color
dev: false
/lnurl/0.19.0:
@@ -2918,7 +3015,7 @@ packages:
dev: false
/merkle-lib/2.0.10:
- resolution: {integrity: sha1-grjbrnXieneFOItz+ddyXQ9vMyY=}
+ resolution: {integrity: sha512-XrNQvUbn1DL5hKNe46Ccs+Tu3/PYOlrcZILuGUhb95oKBPjc/nmIC8D462PQkipVDGKRvwhn+QFg2cCdIvmDJA==}
dev: false
/methods/1.1.2:
@@ -3112,6 +3209,8 @@ packages:
debug: 3.2.7
iconv-lite: 0.4.24
sax: 1.2.4
+ transitivePeerDependencies:
+ - supports-color
dev: false
/needle/2.9.1:
@@ -3122,6 +3221,8 @@ packages:
debug: 3.2.7
iconv-lite: 0.4.24
sax: 1.2.4
+ transitivePeerDependencies:
+ - supports-color
dev: false
/negotiator/0.6.2:
@@ -3195,6 +3296,8 @@ packages:
rimraf: 2.7.1
semver: 5.7.1
tar: 4.4.19
+ transitivePeerDependencies:
+ - supports-color
dev: false
/nodemon/2.0.13:
@@ -3204,14 +3307,14 @@ packages:
requiresBuild: true
dependencies:
chokidar: 3.5.2
- debug: 3.2.7
ignore-by-default: 1.0.1
minimatch: 3.0.4
pstree.remy: 1.1.8
semver: 5.7.1
supports-color: 5.5.0
touch: 3.1.0
- undefsafe: 2.0.3
+ undefsafe: [email protected]
update-notifier: 5.1.0
dev: false
@@ -3681,6 +3784,14 @@ packages:
- utf-8-validate
dev: false
+ /postmark/3.0.11:
+ resolution: {integrity: sha512-bbHoWt7PdeAKRpu55mzAxjE59N1264eiItDyPR2me3nsKFrS2YaDjJm6wA/z2wmBrchrcx+EWiKWWBzWUzcyFA==}
+ dependencies:
+ axios: 0.25.0
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
/prelude-ls/1.1.2:
resolution: {integrity: sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=}
engines: {node: '>= 0.8.0'}
@@ -3834,7 +3945,7 @@ packages:
dev: false
/pushdata-bitcoin/1.0.1:
- resolution: {integrity: sha1-FZMdPNlnreUiBvUjqnMxrvfUOvc=}
+ resolution: {integrity: sha512-hw7rcYTJRAl4olM8Owe8x0fBuJJ+WGbMhQuLWOXEMN3PxPCKQHRkhfL+XG0+iXUmSHjkMmb3Ba55Mt21cZc9kQ==}
dependencies:
bitcoin-ops: 1.4.1
dev: false
@@ -4180,6 +4291,8 @@ packages:
on-finished: 2.3.0
range-parser: 1.2.1
statuses: 1.5.0
+ transitivePeerDependencies:
+ - supports-color
dev: false
/seq-queue/0.0.5:
@@ -4222,6 +4335,8 @@ packages:
escape-html: 1.0.3
parseurl: 1.3.3
send: 0.17.1
+ transitivePeerDependencies:
+ - supports-color
dev: false
/set-blocking/2.0.0:
@@ -4354,6 +4469,8 @@ packages:
node-pre-gyp: 0.11.0
optionalDependencies:
node-gyp: 3.8.0
+ transitivePeerDependencies:
+ - supports-color
dev: false
/sqlstring/2.3.1:
@@ -4679,10 +4796,12 @@ packages:
engines: {node: '>=14.0.0'}
dev: false
- /undefsafe/2.0.3:
+ /undefsafe/[email protected]:
resolution: {integrity: sha512-nrXZwwXrD/T/JXeygJqdCO6NZZ1L66HrxM/Z7mIq2oPanoN0F1nLx3lwJMu6AwJY69hdixaFQOuoYsMjE5/C2A==}
dependencies:
- debug: 2.6.9
+ transitivePeerDependencies:
+ - supports-color
dev: false
/underscore/1.13.1:
@@ -4800,7 +4919,7 @@ packages:
engines: {node: '>=4.0'}
dependencies:
async: 2.6.3
- git-node-fs: 1.0.0
+ git-node-fs: [email protected]
ini: 1.3.8
js-git: 0.7.8
dev: false