mertjr
Başarılı
- Katılım
- 24 Şubat 2024
- Mesajlar
- 381
- Beğeniler
- 205
Nodemailer kullanarak bir başvuru formu hazırlamıştım kendi localhost tarafımda çalışıyor fakat yayınladığım zaman formu gönderdiğimde hata veriyor
Hata:
404 - Dosya veya dizin bulunamadı.
Aradığınız kaynak kaldırılmış, adı değiştirilmiş veya geçici olarak erişime kapalı olabilir.
Bir şeyleri mi gözden kaçırıyorum vs diyorum ama port numarasında mı sorun oluyor acaba hosting sağlayıcım ile mi konuşmam gerek?
[CODE lang="javascript" title="Nodemailer.js"]const nodemailer = require("nodemailer");
const multer = require("multer");
const fs = require("fs");
const bodyParser = require("body-parser");
const express = require("express");
require("dotenv").config();
const app = express();
const PORT = process.env.PORT || 5000;
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
const Storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, "./images");
},
filename: function (req, file, callback) {
const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9);
callback(
null,
file.fieldname + "" + uniqueSuffix + "" + file.originalname
);
},
});
const upload = multer({ storage: Storage }).single("image");
app.use(express.static("public"));
app.get("/", (req, res) => {
res.sendFile(__dirname + "/public/staj-basvuru-formu.html");
});
app.post("/sendemail", (req, res) => {
upload(req, res, function (err) {
if (err) {
console.log(err);
return res.status(500).send("Bir hata oluştu");
} else {
const from = req.body.email;
const to = "***@gmail.com";
const subject =
const body = `
İsim: ${req.body.isim}
Mail: ${req.body.email}
Telefon: ${req.body.telefon}
Staj Konusu: ${req.body.stajKonusu}
Staj Süresi: ${req.body.stajSuresi}
Staj Dönemi: ${req.body.stajDonemi}
Staj Dönemi ile ilgili Görüş/Mesaj: ${req.body.comment}
`;
const filePath = req.file.path;
const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
},
});
const mailOptions = {
from: from,
to: to,
subject: subject,
text: body,
attachments: [
{
path: filePath,
},
],
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log("Error:", error);
return res.status(500).send("Mail gönderilemedi");
} else {
console.log("Email sent:", info.response);
fs.unlink(filePath, function (err) {
if (err) {
console.log(err);
return res.status(500).send("Dosya silinemedi");
} else {
console.log("Dosya silindi");
return res.redirect("/staj-form-tamamlandi.html");
}
});
}
});
}
});
});
app.listen(PORT, () => {
console.log(
});
[/CODE]
Hata:
404 - Dosya veya dizin bulunamadı.
Aradığınız kaynak kaldırılmış, adı değiştirilmiş veya geçici olarak erişime kapalı olabilir.
Bir şeyleri mi gözden kaçırıyorum vs diyorum ama port numarasında mı sorun oluyor acaba hosting sağlayıcım ile mi konuşmam gerek?
[CODE lang="javascript" title="Nodemailer.js"]const nodemailer = require("nodemailer");
const multer = require("multer");
const fs = require("fs");
const bodyParser = require("body-parser");
const express = require("express");
require("dotenv").config();
const app = express();
const PORT = process.env.PORT || 5000;
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
const Storage = multer.diskStorage({
destination: function (req, file, callback) {
callback(null, "./images");
},
filename: function (req, file, callback) {
const uniqueSuffix = Date.now() + "-" + Math.round(Math.random() * 1e9);
callback(
null,
file.fieldname + "" + uniqueSuffix + "" + file.originalname
);
},
});
const upload = multer({ storage: Storage }).single("image");
app.use(express.static("public"));
app.get("/", (req, res) => {
res.sendFile(__dirname + "/public/staj-basvuru-formu.html");
});
app.post("/sendemail", (req, res) => {
upload(req, res, function (err) {
if (err) {
console.log(err);
return res.status(500).send("Bir hata oluştu");
} else {
const from = req.body.email;
const to = "***@gmail.com";
const subject =
Staj Başvuru Formu - ${req.body.isim};const body = `
İsim: ${req.body.isim}
Mail: ${req.body.email}
Telefon: ${req.body.telefon}
Staj Konusu: ${req.body.stajKonusu}
Staj Süresi: ${req.body.stajSuresi}
Staj Dönemi: ${req.body.stajDonemi}
Staj Dönemi ile ilgili Görüş/Mesaj: ${req.body.comment}
`;
const filePath = req.file.path;
const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: process.env.EMAIL_USER,
pass: process.env.EMAIL_PASS,
},
});
const mailOptions = {
from: from,
to: to,
subject: subject,
text: body,
attachments: [
{
path: filePath,
},
],
};
transporter.sendMail(mailOptions, function (error, info) {
if (error) {
console.log("Error:", error);
return res.status(500).send("Mail gönderilemedi");
} else {
console.log("Email sent:", info.response);
fs.unlink(filePath, function (err) {
if (err) {
console.log(err);
return res.status(500).send("Dosya silinemedi");
} else {
console.log("Dosya silindi");
return res.redirect("/staj-form-tamamlandi.html");
}
});
}
});
}
});
});
app.listen(PORT, () => {
console.log(
Sunucu ${PORT} numaralı portta çalışıyor.);});
[/CODE]