E-postada gözüken "undefined"lardan dolayı boş bir obje olduğunu düşünmüştüm req.body'nin. Direkt bu logladığınız objeyi kullanmanız durumunda öyle bir görüntü beklemezdim.
E-postayı yollayan kodun tümünü paylaşma şansınız var mı?
[CODE lang="html" title="form"] <div class="row">
<div id="form-tagline" class="col-md-4">
<div class="form-tagline">
<i class="fa fa-envelope fa-5x"></i>
<h2>Staj Başvuru Formu</h2>
</div>
</div>
<div id="form-content" class="col-md-8">
<form class="contact-form" action="">
<div class="row form-group">
<div class="col-sm-3">
<input type="hidden" />
<label id="name-label" class="control-label" for="isim"
</div>
<div class="input-group col-sm-9">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon-isim"
<i class="fa fa-user"></i
</span>
</div>
<input
id="isim"
type="text"
class="form-control"
placeholder="Adınız, Soyadınız"
name="isim"
required
/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-3">
<label id="email-label" class="control-label" for="email"
</div>
<div class="input-group col-sm-9">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon-email"
<i class="fa fa-envelope"></i
</span>
</div>
<input
type="email"
class="form-control"
id="email"
placeholder="email Adresiniz"
name="email"
pattern="^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$"
required
/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-3">
<label id="number-label" class="control-label" for="telefon"
</div>
<div class="input-group col-sm-9">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon-telefon"
<i class="fa fa-phone"></i
</span>
</div>
<input
type="text"
class="form-control"
id="telefon"
placeholder="Telefon Numaranızı Girin"
name="telefon"
required
/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-3">
<label class="control-label" for="stajKonusu"
</div>
<div class="input-group col-sm-9">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon-stajKonusu"
<i class="fa fa-briefcase"></i
</span>
</div>
<input
type="text"
class="form-control"
id="stajKonusu"
placeholder="Staj Konusunu Girin"
name="stajKonusu"
required
/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-3">
<label class="control-label" for="stajSuresi"
</div>
<div class="input-group col-sm-9">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon-stajSuresi"
<i class="fa fa-clock"></i
</span>
</div>
<input
type="text"
class="form-control"
id="stajSuresi"
placeholder="Staj Süresini Girin"
name="stajSuresi"
required
/>
</div>
</div>
<div class="form-group row">
<div class="col-sm-3">
<label class="control-label" for="stajDonemi"
</div>
<div class="input-group col-sm-9">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon-stajDonemi"
<i class="fa fa-calendar"></i
</span>
</div>
<input
type="text"
class="form-control"
id="stajDonemi"
placeholder="Staj Dönemini Girin"
name="stajDonemi"
required
/>
</div>
</div>
<hr />
<div class="form-group row">
<div class="col-sm-3">
<label class="control-label" for="cvDosyasi"
</div>
<div class="col-sm-9">
<input
type="file"
class="form-control"
id="cvDosyasi"
name="cvDosyasi"
accept=".pdf"
required
/>
<small class="form-text text-muted">Sadece PDF formatı</small>
</div>
</div>
<div class="form-group row">
<div class="col-sm-3">
<label class="control-label" for="comment"
Staj Dönemi ile ilgili Görüş/Mesaj:</label
</div>
<div class="input-group col-sm-9">
<div class="input-group-prepend">
<span class="input-group-text" id="basic-addon-email"
<i class="fa fa-comment"></i
</span>
</div>
<textarea class="form-control" rows="5" id="comment"></textarea>
</div>
</div>
<div class="form-group row">
<div class="col-sm-12 submit-button">
<button
type="submit"
id="submit"
class="btn btn-default"
aria-pressed="true"
Başvuruyu Gönder
</button>
</div>
</div>
</form>
</div>
</div>[/CODE]
Kod:
<script>
const contactform = document.querySelector(".contact-form");
let isim = document.getElementById("isim");
let email = document.getElementById("email");
let telefon = document.getElementById("telefon");
let stajKonusu = document.getElementById("stajKonusu");
let stajSuresi = document.getElementById("stajSuresi");
let stajDonemi = document.getElementById("stajDonemi");
let cvDosyasi = document.getElementById("cvDosyasi");
let comment = document.getElementById("comment");
contactform.addEventListener("submit", (e) => {
e.preventDefault();
let formData = {
isim: isim.value,
email: email.value,
telefon: telefon.value,
stajKonusu: stajKonusu.value,
stajSuresi: stajSuresi.value,
stajDonemi: stajDonemi.value,
cvDosyasi: cvDosyasi.value,
comment: comment.value,
};
let xhr = new XMLHttpRequest();
xhr.open("POST", "/");
xhr.setRequestHeader("content-type", "application/json");
xhr.onload = function () {
console.log(xhr.responseText);
if (xhr.responseText == "success") {
alert("email Gitti");
isim.value = "";
email.value = "";
telefon.value = "";
stajKonusu.value = "";
stajSuresi.value = "";
stajDonemi.value = "";
cvDosyasi.value = "";
comment.value = "";
} else {
alert("wrong");
}
};
xhr.send(JSON.stringify(formData));
});
</script>
const express = require("express");
const app = express();
const nodemailer = require("nodemailer");
const PORT = process.env.PORT || 5000;
// Middleware
app.use(express.static("public"));
app.use(express.json());
app.get("/", (req, res) => {
res.sendFile(__dirname + "/bize-basvurun/staj-basvuru.html");
});
app.post("/", (req, res) => {
console.log(req.body);
const transporter = nodemailer.createTransport({
service: "gmail",
auth: {
user: "..",
pass: "..",
},
});
const mailOptions = {
from: req.body.email,
to: "[email protected]",
subject: `Staj Başvuru Formu`,
text: `
İ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.stajDönemi}
CV Dosyası: ${req.body.cvDosyasi}
Staj Dönemi ile ilgili Görüş/Mesaj: ${req.body.comment}
`,
};
transporter.sendMail(mailOptions, (error, info) => {
if (error) {
console.log(error);
res.send("error");
} else {
console.log("Email sent: " + info.response);
res.send("success");
}
});
});
app.listen(PORT, () => {
console.log(`server running on port ${PORT}`);
});