meat: ContactUs nodemailer

This commit is contained in:
Dex404 2024-04-22 05:13:51 +00:00
parent 46706d77fb
commit 3f7bd63c8b
10 changed files with 123 additions and 38140 deletions

10
app/mail/contactForm.html Normal file
View file

@ -0,0 +1,10 @@
<div style="font-family: sans-serif">
<h1>Contact Form Inquiry</h1>
<p>You have received the following inquiry:</p>
<br />
<p>Email: {{ email }}</p>
<br />
<p>Message:</p>
<p>{{ message }}</p>
<br />
</div>

32
app/mail/sliceHtml.ts Normal file
View file

@ -0,0 +1,32 @@
export const stripHTMLTags = (htmlString: string): string => {
// also replaces <br> tags with new lines
return htmlString.replace(/<br>/g, "\n").replace(/<[^>]+>/g, "")
}
/**
* @param data
* @param htmlString
* @return The updated HTML string
*/
export const replaceMergeTags = (data: Record<string, any>, htmlString: string): string => {
Object.keys(data)?.forEach((key: string) => {
if (htmlString.includes(`{{ ${key} }}`)) {
let val: any = data[key]
// check if value is an array
if (val instanceof Array) {
const listElements: string[] = val.map((item: any) => {
return `<li>${item}</li>`
})
// create an unordered list in HTML
val = `<ul>${listElements.join("")}</ul>`
}
const regexPattern = new RegExp(`\\{\\{\\s*${key}\\s*\\}\\}`, "g")
htmlString = htmlString.replace(regexPattern, val)
}
})
return htmlString
}