fixed mail
This commit is contained in:
parent
d61b0a767a
commit
a458d20679
68
package-lock.json
generated
68
package-lock.json
generated
@ -21,7 +21,7 @@
|
|||||||
"fastify-plugin": "^4.5.1",
|
"fastify-plugin": "^4.5.1",
|
||||||
"fastify-raw-body": "^4.3.0",
|
"fastify-raw-body": "^4.3.0",
|
||||||
"googleapis": "^134.0.0",
|
"googleapis": "^134.0.0",
|
||||||
"mailtrap": "^3.3.0",
|
"nodemailer": "^6.9.14",
|
||||||
"openai": "^4.38.5",
|
"openai": "^4.38.5",
|
||||||
"redis": "^4.6.11",
|
"redis": "^4.6.11",
|
||||||
"simple-get": "^4.0.1",
|
"simple-get": "^4.0.1",
|
||||||
@ -2775,16 +2775,6 @@
|
|||||||
"fastq": "^1.6.1"
|
"fastq": "^1.6.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/axios": {
|
|
||||||
"version": "1.7.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/axios/-/axios-1.7.2.tgz",
|
|
||||||
"integrity": "sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==",
|
|
||||||
"dependencies": {
|
|
||||||
"follow-redirects": "^1.15.6",
|
|
||||||
"form-data": "^4.0.0",
|
|
||||||
"proxy-from-env": "^1.1.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/balanced-match": {
|
"node_modules/balanced-match": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
|
||||||
@ -5635,25 +5625,6 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"license": "ISC"
|
"license": "ISC"
|
||||||
},
|
},
|
||||||
"node_modules/follow-redirects": {
|
|
||||||
"version": "1.15.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz",
|
|
||||||
"integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==",
|
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "individual",
|
|
||||||
"url": "https://github.com/sponsors/RubenVerborgh"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"engines": {
|
|
||||||
"node": ">=4.0"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"debug": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/for-each": {
|
"node_modules/for-each": {
|
||||||
"version": "0.3.3",
|
"version": "0.3.3",
|
||||||
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
|
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
|
||||||
@ -7299,30 +7270,6 @@
|
|||||||
"node": ">=12"
|
"node": ">=12"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/mailtrap": {
|
|
||||||
"version": "3.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mailtrap/-/mailtrap-3.3.0.tgz",
|
|
||||||
"integrity": "sha512-lFk7Cuv+qccAGMc9EMPwQiHp2+zG5wPorWdDn29NiLCA0YwYLEtPAKz/EvkLue3kcRA2KukgLOSwEbzL/Fj7Xw==",
|
|
||||||
"dependencies": {
|
|
||||||
"axios": ">=0.27"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=16.20.1",
|
|
||||||
"yarn": ">=1.22.17"
|
|
||||||
},
|
|
||||||
"peerDependencies": {
|
|
||||||
"@types/nodemailer": "^6.4.9",
|
|
||||||
"nodemailer": "^6.9.4"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"@types/nodemailer": {
|
|
||||||
"optional": true
|
|
||||||
},
|
|
||||||
"nodemailer": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/memoizee": {
|
"node_modules/memoizee": {
|
||||||
"version": "0.4.15",
|
"version": "0.4.15",
|
||||||
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
|
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
|
||||||
@ -7599,6 +7546,14 @@
|
|||||||
"dev": true,
|
"dev": true,
|
||||||
"peer": true
|
"peer": true
|
||||||
},
|
},
|
||||||
|
"node_modules/nodemailer": {
|
||||||
|
"version": "6.9.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/nodemailer/-/nodemailer-6.9.14.tgz",
|
||||||
|
"integrity": "sha512-Dobp/ebDKBvz91sbtRKhcznLThrKxKt97GI2FAlAyy+fk19j73Uz3sBXolVtmcXjaorivqsbbbjDY+Jkt4/bQA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/normalize-package-data": {
|
"node_modules/normalize-package-data": {
|
||||||
"version": "2.5.0",
|
"version": "2.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
|
||||||
@ -8399,11 +8354,6 @@
|
|||||||
"node": ">= 0.10"
|
"node": ">= 0.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/proxy-from-env": {
|
|
||||||
"version": "1.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
|
||||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg=="
|
|
||||||
},
|
|
||||||
"node_modules/psl": {
|
"node_modules/psl": {
|
||||||
"version": "1.9.0",
|
"version": "1.9.0",
|
||||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
"fastify-plugin": "^4.5.1",
|
"fastify-plugin": "^4.5.1",
|
||||||
"fastify-raw-body": "^4.3.0",
|
"fastify-raw-body": "^4.3.0",
|
||||||
"googleapis": "^134.0.0",
|
"googleapis": "^134.0.0",
|
||||||
"mailtrap": "^3.3.0",
|
"nodemailer": "^6.9.14",
|
||||||
"openai": "^4.38.5",
|
"openai": "^4.38.5",
|
||||||
"redis": "^4.6.11",
|
"redis": "^4.6.11",
|
||||||
"simple-get": "^4.0.1",
|
"simple-get": "^4.0.1",
|
||||||
|
@ -188,15 +188,17 @@ export const blogRoutes = (fastify, _, done) => {
|
|||||||
}, async (req, reply) => {
|
}, async (req, reply) => {
|
||||||
const [blog] = await db.select().from(sites).where(eq(sites.id, req.body.blog_id));
|
const [blog] = await db.select().from(sites).where(eq(sites.id, req.body.blog_id));
|
||||||
|
|
||||||
if(!blog) {
|
if(!blog || !blog.contact_email) {
|
||||||
return reply.code(400).send({
|
return reply.code(400).send({
|
||||||
success: false,
|
success: false,
|
||||||
code: "invalid_blog"
|
code: "invalid_blog"
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
await sendContactEmail(blog.contact_email, req.body.sender, req.body.subject, req.body.content);
|
await sendContactEmail(blog.contact_email, req.body.email, req.body.subject, req.body.content);
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
console.log(e);
|
||||||
return reply.code(500).send({
|
return reply.code(500).send({
|
||||||
success: false,
|
success: false,
|
||||||
code: "problem_sending"
|
code: "problem_sending"
|
||||||
|
@ -1,27 +1,28 @@
|
|||||||
import { eq } from "drizzle-orm";
|
import { eq } from "drizzle-orm";
|
||||||
import { db } from "../db/index.js";
|
import { db } from "../db/index.js";
|
||||||
import { sites } from "../db/schemas.js";
|
import { sites } from "../db/schemas.js";
|
||||||
|
import nodemailer from 'nodemailer';
|
||||||
import { MailtrapClient } from "mailtrap";
|
|
||||||
|
|
||||||
const TOKEN = "a0cc97f4f856d6c16d70bb5984e32cef";
|
const TOKEN = "a0cc97f4f856d6c16d70bb5984e32cef";
|
||||||
const ENDPOINT = "https://send.api.mailtrap.io/";
|
const ENDPOINT = "https://send.api.mailtrap.io/";
|
||||||
|
|
||||||
const default_sender = {
|
const default_sender = "mailtrap@demomailtrap.com";
|
||||||
email: "mailtrap@demomailtrap.com",
|
|
||||||
name: "Mailtrap Test",
|
|
||||||
};
|
|
||||||
|
|
||||||
const client = new MailtrapClient({ endpoint: ENDPOINT, token: TOKEN });
|
var client = nodemailer.createTransport({
|
||||||
|
host: "live.smtp.mailtrap.io",
|
||||||
|
port: 587,
|
||||||
|
auth: {
|
||||||
|
user: "api",
|
||||||
|
pass: "a0cc97f4f856d6c16d70bb5984e32cef"
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
export async function sendContactEmail(recipient, sender, subject, body) {
|
export async function sendContactEmail(recipient, sender, subject, body) {
|
||||||
client.send({
|
client.sendMail({
|
||||||
from: default_sender,
|
from: default_sender,
|
||||||
to: {
|
to: recipient,
|
||||||
email: recipient
|
subject: `YouPage.ai: ${subject}`,
|
||||||
},
|
text: `You got a new message from your Youpage.ai blog!\nSender: ${sender}\nMessage: ${body}`
|
||||||
subject: "Form submission on YouPage.ai",
|
|
||||||
text: `You got a new message from your Youpage.ai page!\nSender: ${sender}\nSubject: ${subject}\nMessage: ${body}`
|
|
||||||
}).catch(console.error);
|
}).catch(console.error);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -40,7 +41,7 @@ export async function sendFreebie(recipient, blog_id) {
|
|||||||
];
|
];
|
||||||
|
|
||||||
client
|
client
|
||||||
.send({
|
.sendMail({
|
||||||
from: sender,
|
from: sender,
|
||||||
to: recipients,
|
to: recipients,
|
||||||
subject: `Your freebie from ${blog.name}`,
|
subject: `Your freebie from ${blog.name}`,
|
||||||
|
Loading…
Reference in New Issue
Block a user