-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathapp.js
More file actions
87 lines (73 loc) · 2.45 KB
/
app.js
File metadata and controls
87 lines (73 loc) · 2.45 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
require("dotenv").config();
const express = require("express");
const nodemailer = require("nodemailer");
const app = express();
const port = process.env.PORT || 3000;
app.use(express.static("public"));
app.use(express.urlencoded({ extended: true }));
app.use(express.json());
app.get("/", (_req, res) => {
res.sendFile(__dirname + "/index.html");
});
app.get("/contact", (_req, res) => {
res.sendFile(__dirname + "/contact.html");
});
app.get("/about", (_req, res) => {
res.sendFile(__dirname + "/about.html");
});
app.get("/services", (_req, res) => {
res.sendFile(__dirname + "/services.html");
});
app.get("/projects", (_req, res) => {
res.sendFile(__dirname + "/projects.html");
});
app.post("/", (req, res) => {
const { name, tel, email, message, subject = process.env.DEFAULT_SUBJECT } = req.body;
var transporter = nodemailer.createTransport({
service: "gmail",
// port: 587,
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASSWORD,
}
});
var mailOptions = {
from: email,
to: process.env.SEND_TO_EMAILS.split(","), // list of receivers
subject: subject,
html: `
<div style="font-family: Arial, sans-serif; color: #333;">
<h2 style="color: #4CAF50;">New Quotation Request</h2>
<p><strong>From:</strong> ${name}</p>
<p><strong>Email:</strong> <a href="mailto:${email}" style="color: #1a73e8;">${email}</a></p>
<p><strong>Phone:</strong> ${tel}</p>
<hr style="border: 1px solid #ddd;" />
<h3>Message:</h3>
<p style="white-space: pre-line; line-height: 1.6;">${message}</p>
<hr style="border: 1px solid #ddd;" />
<p>This email was sent from your website's quotation request form.</p>
</div>
`,
};
transporter.sendMail(mailOptions, function(error, info) {
if (error) {
console.log(error);
res.sendFile(__dirname + "/failure.html");
} else {
console.log("Email sent: " + info.response);
res.sendFile(__dirname + "/success.html");
}
});
});
app.post("/failure", (_req, res) => {
res.redirect("/");
});
app.post("/success", (_req, res) => {
res.redirect("/");
});
app.get("/ping", (_req, res) => {
res.send("pong")
})
app.listen(port, () => {
console.log(`Server started at port ${port}. Visit http://localhost:${port}`);
});