iToverDose/Yazılım· 28 MAYIS 2026 · 20:03

Ücretsiz Google E-Tablolarla Sıfır Maliyetli İletişim Formu Arka Ucu Oluşturun

Statik web sitelerinin iletişim formları için aylık ödeme gerektiren karmaşık altyapılara ihtiyacı yok. Basit bir Google Apps Script ile tüm işlemler ücretsiz olarak halledilebilir. Hadi nasıl uygulayabileceğinizi inceleyelim.

DEV Community3 dk okuma0 Yorumlar

Statik web siteleri — portföy siteleri, açılış sayfaları veya basit müşteri siteleri — genellikle iletişim formu bölümünde takılır. Ad, e-posta ve mesaj toplamak için aylık sunucu ücreti ödemek istemezsiniz. Ancak birçok barındırılan form hizmeti, Google E-Tablolar entegrasyonu, bildirimler veya markasız kullanım için ayda 10-20 ABD doları talep eder.

İyi haber: Küçük bir Google Apps Script ile aynı işlevselliği tamamen ücretsiz olarak sağlayabilirsiniz. Hiçbir sunucu, veritabanı, SMTP sağlayıcısı veya aylık fatura olmadan.

Adım adım mimari: Form verisinden e-posta bildirimine

İletişim formunuzdan alınan verilerin akışı basit ve doğrudan şu şekilde ilerler:

  • HTML formu → Google Apps Script doPost fonksiyonu → Google E-Tablolar
  • Google E-Tablolar’a satır ekleme → Site sahibine e-posta bildirimi → İsteğe bağlı otomatik yanıt

Formunuz, bir Google Apps Script web uygulamasının barındırdığı bir POST isteği gönderir. Script, gönderiyi doğrular, bariz spamleri filtreler, veriyi Google E-Tablolar’a ekler ve MailApp.sendEmail() ile bir e-posta bildirimi gönderir.

Google Apps Script’inizin çekirdek kodunu oluşturun

Script’inizin omurgası, web uygulamasının giriş noktası olan bir doPost fonksiyonudur:

function doPost(e) {
  try {
    return handlePost(e);
  } catch (err) {
    console.error(err);
    return jsonResponse('error', 'Sunucu iç hatası.');
  }
}

Ardından, handlePost fonksiyonu içinde aşağıdaki adımlar gerçekleşir:

  • Giriş verisini JSON veya form-urlencoded olarak ayrıştırın.
  • Bir honeypot alanını kontrol edin.
  • Zorunlu alanların dolu olduğunu doğrulayın.
  • Geçersiz e-posta adreslerini reddedin.
  • Basit anahtar kelime tabanlı spam filtrelemesi uygulayın.
  • Tekrarlanan gönderimleri sınırlayın.
  • Veriyi Google E-Tablolar’a yeni bir satır olarak ekleyin.
  • Site sahibine e-posta bildirimi gönderin.
  • İsteğe bağlı olarak otomatik yanıt gönderin.

Honeypot tekniği, spam botlarını yakalamak için özellikle etkilidir. Botlar genellikle görebildikleri tüm alanları doldururken, gerçek kullanıcılar gizli _gotcha alanını asla doldurmaz. Eğer bu alan doluysa, script sahte bir başarı yanıtı döndürür ve veriyi E-Tablolar’a yazmaz.

Google E-Tablolar: Basit ama güçlü bir veritabanı alternatifi

Bir iletişim formu için Google E-Tablolar, oldukça mantıklı bir veritabanı görevi görebilir. Veriler üzerinde arama yapılabilir, dışa aktarılabilir ve teknik olmayan müşteriler tarafından kolayca anlaşılabilir.

Öncelikle, ilgili E-Tablo sayfasını oluşturmanız veya mevcut birini kullanmanız gerekir. Bunu yapan yardımcı bir fonksiyon şu şekildedir:

function ensureSheet(sheetName) {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  let sheet = ss.getSheetByName(sheetName);
  
  if (!sheet) {
    sheet = ss.insertSheet(sheetName);
    sheet.appendRow(['Zaman Damgası', 'Ad', 'E-posta', 'Mesaj', 'Kaynak URL']);
    sheet.setFrozenRows(1);
    sheet.getRange('D:D').setWrap(true); // Uzun mesajları otomatik olarak sar
  }
}

Ardından, yeni bir gönderiyi E-Tablolar’a ekleyin:

function appendRow(sheetName, row) {
  SpreadsheetApp.getActiveSpreadsheet()
    .getSheetByName(sheetName)
    .appendRow(row);
}

SMTP kurulumu gerekmeden e-posta bildirimleri gönderin

Google Apps Script, yerleşik MailApp.sendEmail() fonksiyonuyla birlikte gelir. Bu sayede, SendGrid, Mailgun veya özel SMTP ayarları yapmadan doğrudan site sahibine bildirim gönderilebilir:

MailApp.sendEmail({
  to: cfg.recipientEmail,
  subject: 'Yeni İletişim Formu Gönderimi',
  body: `${ad} <${e-posta}> gönderdi:\n\n${mesaj}`
});

Bu basit yapı, birçok müşteri sitesi için yeterli olacaktır.

Frontend entegrasyonu: Formunuzu script’e bağlayın

Frontend tarafında, form gönderimini yönetmek için basit bir JavaScript kodu yeterlidir:

const yanıt = await fetch(SCRIPT_URL, {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    ad: form.ad.value,
    e-posta: form.e-posta.value,
    mesaj: form.mesaj.value,
    _gotcha: form._gotcha.value
  })
});

const json = await yanıt.json();

Script’inizi bir web uygulaması olarak dağıtın, erişim izinlerini "Herkes" olarak ayarlayın, dağıtım URL’sini kopyalayın ve JavaScript kodunuza yapıştırın.

Bu çözüm hangi durumlarda uygundur?

Bu yaklaşım özellikle aşağıdaki senaryolarda ideal olarak çalışır:

  • Portföy siteleri ve kişisel web siteleri
  • Ajansların açılış sayfaları ve müşteri siteleri
  • Küçük işletmelerin temas formları
  • Bekleme listeleri ve kayıt formları
  • İç iletişim formları
  • Düşük hacimli potansiyel müşteri toplama formları

Ancak aşağıdaki durumlarda bu yöntem uygun değildir:

  • Dosya yükleme formları
  • Ödeme alma formları
  • Yüksek hacimli işlem gerektiren formlar

Hazır kod ve ileri özellikler

Bu yöntemi kullanarak kendi script’inizi oluşturabileceğiniz gibi, tamamen ücretsiz olan ve MIT lisansıyla yayınlanan bir açık kaynak projesinden de faydalanabilirsiniz. Bu proje, Google E-Tablolar entegrasyonu, e-posta bildirimleri, honeypot spam koruması, anahtar kelime filtreleme, gönderi sınırlama, otomatik yanıtlar ve örnek HTML formu gibi tüm temel özellikleri içermektedir.

Takım bazlı kullanım için kullanıcı arayüzü ve çoklu form yönetimi gibi ek özellikler sunan ücretli bir versiyonu da mevcuttur, ancak açık kaynak script tek başına tamamen işlevseldir.

Bu basit ama güçlü yaklaşım, statik sitelerinizdeki iletişim formlarını aylık masraflardan kurtarırken, aynı zamanda güvenilir ve ölçeklenebilir bir altyapı sunar. Gelişen web projelerinizde bu yöntemi kullanarak hem zaman hem de bütçe tasarrufu sağlayabilirsiniz.

Yapay zeka özeti

Statik web siteleri için aylık ödeme gerektirmeyen ücretsiz bir iletişim formu arka ucu oluşturmanın yolu: Google Apps Script ve Google E-Tablolar ile nasıl yapılır?

Yorumlar

00
YORUM BIRAK
ID #DAG4HP

0 / 1200 KARAKTER

İnsan doğrulaması

5 + 4 = ?

Editör onayı sonrası yayına girer

Moderasyon · Spam koruması aktif

Henüz onaylı yorum yok. İlk yorumu sen bırak.