პირველ რიგში დაგჭირდებათ შექმნათ რაიმე ახალი პროექტი/ფოლდერი. შიგნით შევქმნათ ერთი ფაილი მაგალითად main.js და გავუშვათ შემდეგი ბრძანება.
bashnpm init -y
ეს ბრძანება ავტომატურად დაამატებს package.json ფაილს რის მეშვეობითაც ჩვენ შევძლებთ ნოუდის გარემოში გამოვიყენოთ დამატებითი dependencies. გავუშვათ შემდეგი ბრძანება:
bashnpm install express nodemailer dotenv
ამის შემდეგ ჩვენს ფოლდერში დავამატოთ კიდევ ორი ახალი ფაილი, ერთი იყოს mailer.js და მეორე .env. საბოლოოდ პროექტი სტრუქტურა იქნება შემდეგი:
txt├── .env // სენსიტიური ინფორმაციის ფაილი ├── main.js // მთავარი გამშვები ფაილი ├── package.json └── mailer.js // აქ დავწერთ იმეილის გამგზავნ კოდს
.env ფაილში უნდა შევინახოთ შემდეგი მონაცემები:
txtEMAIL_USER=your_email@gmail.com EMAIL_PASS=your_email_password_or_app_password
⚠️ Gmail-ის შემთხვევაში, გამოიყენეთ App Password როგორ დავაგენერიროთ App password 1m video
ამის შემდეგ გავაკეთოთ mailer მოდული. mailer.js
jsconst nodemailer = require('nodemailer'); require('dotenv').config(); const transporter = nodemailer.createTransport({ service: 'gmail', auth: { user: process.env.EMAIL_USER, pass: process.env.EMAIL_PASS, }, }); const sendEmail = async (to, subject, text, html) => { const mailOptions = { from: `Sender Name <${process.env.EMAIL_USER}>`, to, subject, text, html, }; try { const info = await transporter.sendMail(mailOptions); console.log('Email sent:', info.response); return { success: true, info }; } catch (error) { console.error('Error sending email:', error); return { success: false, error }; } }; module.exports = sendEmail;
ამის შემდეგ გადავიდეთ უკვე main.js ფაილში სადაც გავაკეთებთ სერვერს.
main.js
jsconst express = require('express'); const sendEmail = require('./mailer'); const app = express(); require('dotenv').config(); app.use(express.json()); app.post('/send-email', async (req, res) => { const { to, subject, message } = req.body; if (!to || !subject || !message) { return res.status(400).json({ error: 'ყველა ველი სავალდებულოა' }); } const result = await sendEmail(to, subject, message, `<p>${message}</p>`); if (result.success) { res.json({ message: 'ელფოსტა წარმატებით გაიგზავნა' }); } else { res.status(500).json({ error: 'ელფოსტის გაგზავნა ვერ მოხერხდა' }); } }); const PORT = process.env.PORT || 3000; app.listen(PORT, () => { console.log(`სერვერი გაშვებულია პორტზე ${PORT}`); });
ამის შემდეგ გაუშვით ტერმინალში ბრძანება რომელიც დასტარტავს სერვერს
bashnode main.js
გავტესტოთ ჩვენი აპლიკაცია შეგიძლიათ გამოიყენოთ postman, thunder client ან სხვა.
http://localhost:3000/send-email -ზე უნდა დაარექუესთოთ POST მეთოდით და body პატამეტრად უნდა გამოატანოთ
json{ "to": "receiver@example.com", "subject": "ტესტური ელფოსტა", "message": "გამარჯობა, ეს ტესტური ელფოსტაა!" }
თუ ყველაფერი სწორად მუშაობს უნდა მიიღოთ შემდეგი პასუხი
json{ "message": "ელფოსტა წარმატებით გაიგზავნა" }
.gitignore
-შიNodemailer გვეხმარება მარტივად გავაგზავნოთ ელფოსტა Express სერვერიდან გარეშე გარე სერვისებისა. ამ მეთოდის მეშვეობით შეგიძლიათ ააშენოთ:
დღეისათვის სულ ეს იყო იმედია მოგეწონათ ბლოგი.