Asosiy kontentga o‘tish
Innovialabs

Saytdagi qayta aloqa formasidan xat yuborishni sozlash

Amaliyot3 daq

Qisqacha

Ishonchli forma avval arizani saqlaydi (bazaga, CRM ga yoki Telegramga), keyin SPF, DKIM va DMARC sozlangan domendan tranzaksion servis orqali xat yuboradi; spamni honeypot va so‘rovlar limiti to‘xtatadi.

Qisqa javob

Qayta aloqa formasi faqat pochtaga tayanmasligi kerak. Ishlaydigan sxema:

  1. Brauzer ma’lumotlarni server tomonidagi ishlovchingizga (API marshrut yoki serverless funksiya) yuboradi.
  2. Ishlovchi ma’lumotlarni tekshiradi va spamni ajratib tashlaydi.
  3. Ariza saqlanadi: ma’lumotlar bazasi, CRM, jadval yoki Telegramdagi xabar.
  4. Shundan keyingina SMTP yoki tranzaksion servis orqali xat yuboriladi.
  5. Ariza saqlangach, xat kechiksa ham, foydalanuvchi «Rahmat» ni ko‘radi.

Xostingdagi mail() funksiyasi va sozlamasiz Gmail «nomidan» yuborish — xatlar spamga tushishi yoki yo‘qolishining ko‘p uchraydigan sabablari.

Yuborish usullari

UsulAfzalliklariKamchiliklari
Pochtangiz SMTP si (Google Workspace, Microsoft 365 va boshqalar)oddiy, quti allaqachon boryuborish limitlari, server sozlamalarida ilova paroli
Tranzaksion servis (SendGrid, Mailgun, Postmark, Amazon SES, Resend)yaxshi yetkazib berish, loglar, yetkazilmaganlik haqida webhooklarDNS sozlash kerak, hajm o‘sganda pullik tariflar
Serverless ishlovchi (Vercel, Netlify, Cloudflare)o‘z serveringiz kerak emasichida baribir SMTP yoki pochta API si kerak
Tayyor forma servislarikod umuman yo‘qma’lumotlar uchinchi tomonda, nazorat kamroq

Ko‘pchilik saytlar uchun oqilona tanlov — server ishlovchisidan chaqiriladigan API orqali tranzaksion servis. API kalit server muhit o‘zgaruvchilarida saqlanadi va hech qachon brauzerga tushmaydi.

Ishlovchi namunasi

Nodemailer bilan Node.js marshruti. Mantiq istalgan freymvorkda bir xil.

import nodemailer from "nodemailer";

const transport = nodemailer.createTransport({
  host: process.env.SMTP_HOST,
  port: 587,
  auth: { user: process.env.SMTP_USER, pass: process.env.SMTP_PASS }
});

export async function handleLead(body, ip) {
  if (body.website) return { ok: true };          // honeypot: bot yashirin maydonni to‘ldirgan
  if (!body.name || !body.contact) return { ok: false, error: "invalid" };
  if (await tooManyRequests(ip)) return { ok: false, error: "rate_limit" };

  const lead = await saveLead(body);               // avval saqlaymiz

  try {
    await transport.sendMail({
      from: "Sayt <no-reply@example.com>",
      to: "sales@example.com",
      replyTo: body.email,
      subject: `Yangi ariza: ${body.name}`,
      text: `${body.name}\n${body.contact}\n\n${body.message ?? ""}`
    });
  } catch (err) {
    await markForRetry(lead.id, err);              // xat ketmadi, ariza butun
  }
  return { ok: true };
}

E’tibor bering: From — domeningizdagi manzil, tashrif buyuruvchining emaili esa Reply-To ga qo‘yiladi. Agar From ga tashrif buyuruvchi manzilini qo‘ysangiz, pochta tizimlari xatni deyarli albatta soxta deb rad etadi.

Spamdan himoya

  • Honeypot. Inson ko‘rmaydigan yashirin maydon (masalan, website). Botlar uni to‘ldiradi — bunday so‘rovlarni jimgina e’tiborsiz qoldiring.
  • So‘rovlar limiti. Bitta IP dan ma’lum vaqt ichidagi yuborishlar sonini cheklang.
  • Vaqtni tekshirish. Sahifa yuklanganidan bir soniya o‘tib yuborilgan forma katta ehtimol bilan botdan.
  • Kapcha (Cloudflare Turnstile, reCAPTCHA) — honeypot va limitlar yetmay qolganda.
  • Serverda validatsiya. Brauzerdagi tekshiruvlarni chetlab o‘tish oson, ularni serverda takrorlang.

Yetkazib berish asoslari

  • O‘z domeningizdan yuboring, bepul qutidan emas.
  • SPF (domendan kim yuborishi mumkin), DKIM (xat imzosi) va DMARC (tekshiruvdan o‘tmagan xatlar bilan nima qilish) ni sozlang. Tranzaksion servis tayyor DNS yozuvlarini beradi.
  • Xatlarni sodda yozing: tushunarli mavzu, matnli versiya, qisqartirilgan havolalarsiz.
  • Servis qo‘llab-quvvatlasa, yetkazilmaganlik webhooklarini kuzatib boring.

Arizalarni qanday yo‘qotmaslik kerak

  • Arizani xat yuborishdan oldin saqlang. Pochta — bildirishnoma, ombor emas.
  • Kanalni takrorlang: xat va qo‘shimcha ravishda Telegram chatga xabar yoki CRM ga yozuv.
  • Qayta urinishlar: muvaffaqiyatsiz yuborishlarni navbatga qo‘ying va yana urinib ko‘ring.
  • Monitoring: haftada bir test ariza yuboring yoki ishlovchi xatolariga alert sozlang.
  • Foydalanuvchiga halol javob: saqlash muvaffaqiyatsiz bo‘lsa, «Rahmat» emas, xato va muqobil kontaktni ko‘rsating.

Ko‘p beriladigan savollar

Ko‘pincha From maydonida begona yoki bepul manzil ishlatilgani va domenda SPF, DKIM va DMARC yo‘qligi sababli. DNS yozuvlarini sozlang va ularni qo‘llab-quvvatlaydigan servis orqali yuboring.

Bunda yordam beramiz

O‘zingiz shug‘ullanmasdan natija olishni istasangiz — biz har kuni shu bilan shug‘ullanamiz.

Loyihani muhokama qilish

Yana o‘qing

G‘oya yoki vazifangiz bormi? Bizga aytib bering

Ish kuni davomida javob beramiz va yechim taklif qilamiz. Konsultatsiya bepul.