fixed mail

This commit is contained in:
Omer Sabic 2024-08-24 13:24:00 +02:00
parent d61b0a767a
commit a458d20679
5 changed files with 2266 additions and 1882 deletions

68
package-lock.json generated
View File

@ -21,7 +21,7 @@
"fastify-plugin": "^4.5.1",
"fastify-raw-body": "^4.3.0",
"googleapis": "^134.0.0",
"mailtrap": "^3.3.0",
"nodemailer": "^6.9.14",
"openai": "^4.38.5",
"redis": "^4.6.11",
"simple-get": "^4.0.1",
@ -2775,16 +2775,6 @@
"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": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
@ -5635,25 +5625,6 @@
"dev": true,
"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": {
"version": "0.3.3",
"resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz",
@ -7299,30 +7270,6 @@
"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": {
"version": "0.4.15",
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz",
@ -7599,6 +7546,14 @@
"dev": 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": {
"version": "2.5.0",
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz",
@ -8399,11 +8354,6 @@
"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": {
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz",

View File

@ -42,7 +42,7 @@
"fastify-plugin": "^4.5.1",
"fastify-raw-body": "^4.3.0",
"googleapis": "^134.0.0",
"mailtrap": "^3.3.0",
"nodemailer": "^6.9.14",
"openai": "^4.38.5",
"redis": "^4.6.11",
"simple-get": "^4.0.1",

View File

@ -188,15 +188,17 @@ export const blogRoutes = (fastify, _, done) => {
}, async (req, reply) => {
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({
success: false,
code: "invalid_blog"
});
}
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) {
console.log(e);
return reply.code(500).send({
success: false,
code: "problem_sending"

View File

@ -1,27 +1,28 @@
import { eq } from "drizzle-orm";
import { db } from "../db/index.js";
import { sites } from "../db/schemas.js";
import { MailtrapClient } from "mailtrap";
import nodemailer from 'nodemailer';
const TOKEN = "a0cc97f4f856d6c16d70bb5984e32cef";
const ENDPOINT = "https://send.api.mailtrap.io/";
const default_sender = {
email: "mailtrap@demomailtrap.com",
name: "Mailtrap Test",
};
const default_sender = "mailtrap@demomailtrap.com";
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) {
client.send({
client.sendMail({
from: default_sender,
to: {
email: recipient
},
subject: "Form submission on YouPage.ai",
text: `You got a new message from your Youpage.ai page!\nSender: ${sender}\nSubject: ${subject}\nMessage: ${body}`
to: recipient,
subject: `YouPage.ai: ${subject}`,
text: `You got a new message from your Youpage.ai blog!\nSender: ${sender}\nMessage: ${body}`
}).catch(console.error);
}
@ -40,7 +41,7 @@ export async function sendFreebie(recipient, blog_id) {
];
client
.send({
.sendMail({
from: sender,
to: recipients,
subject: `Your freebie from ${blog.name}`,

4043
yarn.lock

File diff suppressed because it is too large Load Diff