WordPress İletişim Formu Ekleme: Kurulum, E-posta ve Spam

WordPress'te hazır bir iletişim formu gelmez; formu bir eklentiyle eklersiniz. Contact Form 7 ya da WPForms gibi bir eklentiyi kurar, formu oluşturur ve kısa kod ya da blokla iletişim sayfanıza yerleştirirsiniz. Formun gerçekten işe yaraması için iki ayar daha gerekir: mesajların SMTP üzerinden gönderilmesi ve botlara karşı spam koruması.
Formu kurmak kolay kısmı. Sık yaşanan sorun, formun çalışıyor gibi görünüp mesajların hiç gelmemesi ya da spam klasöründe birikmesidir. Aşağıda iki yaygın eklentiyle form oluşturmayı, e-posta teslimini, spam korumasını ve KVKK açısından formda bulunması gerekenleri anlatıyorum.
Contact Form 7 mi, WPForms mu
İki eklenti de WordPress.org eklenti dizininden ücretsiz kurulabilir. Farkları kullanım biçimindedir:
| Contact Form 7 | WPForms | |
|---|---|---|
| Formu oluşturma | Etiketlerle yazılan bir form şablonu | Sürükle bırak düzenleyici |
| Ücret | Tamamen ücretsiz | Ücretsiz Lite sürümü, ek özellikler ücretli sürümde |
| Gelen mesajları panelde saklama | Kendi başına saklamaz, Flamingo eklentisiyle saklanır | Sürüme göre değişir |
| Kime uygun | Biraz HTML'den çekinmeyen, sade form isteyenler | Kod görmeden form kurmak isteyenler |
Bu ikisi dışında Fluent Forms ve Gravity Forms gibi seçenekler de var. Hangisini seçerseniz seçin, eklentinin düzenli güncellenmesine ve sitenizde başka bir form eklentisi kalmamasına dikkat edin; aynı işi yapan iki eklenti gereksiz yük ve çakışma demektir.
Contact Form 7 ile form oluşturmak
- Yönetim panelinde Eklentiler > Yeni ekle bölümünde "Contact Form 7" aratın, kurun ve etkinleştirin.
- Sol menüde açılan İletişim bölümünden yeni bir form ekleyin. Eklenti, ad, e-posta, konu ve mesaj alanlarından oluşan hazır bir şablonla gelir.
- Form sekmesinde alanları ihtiyacınıza göre düzenleyin.
- E-posta (Mail) sekmesinde mesajın kime, hangi adresten ve hangi konuyla gideceğini ayarlayın.
- İletiler sekmesinde "Mesajınız gönderildi" gibi ekranda görünen uyarıların Türkçe olduğunu kontrol edin.
- Kaydedin ve oluşan kısa kodu kopyalayın.
Sade bir form şablonu şöyle görünür. Yıldızlı (*) alanlar zorunludur:
<label> Adınız
[text* your-name autocomplete:name] </label>
<label> E-posta adresiniz
[email* your-email autocomplete:email] </label>
<label> Mesajınız
[textarea* your-message] </label>
[acceptance kvkk-onay] <a href="https://yilmaz.tc/kvkk-aydinlatma-metni">Aydınlatma metnini</a> okudum. [/acceptance]
[submit "Gönder"]
E-posta sekmesinde en sık yapılan hata
"Kimden" alanına ziyaretçinin e-posta adresini yazmak cazip gelir, ama yapmayın. Mesaj sizin sunucunuzdan, başka birinin adresi adına gönderildiği için alıcı sunucu bunu sahte e-posta sayar ve çoğu zaman spam klasörüne atar. "Kimden" alanında kendi alan adınızdaki bir adres olsun, örneğin [email protected]. Gelen mesajı tek tıkla yanıtlayabilmek için ek başlıklara şu satırı ekleyin:
Reply-To: [your-name] <[your-email]>
Formu iletişim sayfasına yerleştirmek
Sayfalar bölümünden iletişim sayfanızı açın, bir Kısa kod bloğu ekleyip kopyaladığınız kodu yapıştırın. Kod şuna benzer:
[contact-form-7 id="1a2b3c4" title="İletişim formu"]
Blok düzenleyicide doğrudan Contact Form 7 bloğunu seçip listeden formunuzu da işaretleyebilirsiniz.
WPForms ile sürükle bırak form
Kod görmek istemiyorsanız WPForms daha rahat bir başlangıç sunar. Eklentiyi kurup etkinleştirdikten sonra WPForms menüsünden yeni bir form ekleyin ve hazır şablonlardan basit iletişim formu (Simple Contact Form) şablonunu seçin. Bu şablon ad, e-posta ve mesaj alanlarıyla gelir.
- Alanların sırasını sürükleyerek değiştirebilir, sol taraftaki listeden telefon ya da açılır menü gibi yeni alanlar ekleyebilirsiniz.
- Ayarlar bölümündeki bildirimler kısmında mesajın hangi adrese gideceğini belirleyin.
- Onay mesajları kısmında form gönderildikten sonra gösterilecek metni ya da yönlendirilecek teşekkür sayfasını seçin. Bu metinler bazen İngilizce gelir; Türkçe bir sitede çevirmeyi atlamayın.
Formu sayfaya eklemek için düzenleyicide artı (+) düğmesine basıp WPForms bloğunu aratın ve formunuzu seçin. Sayfayı önizleyip formun göründüğünü kontrol edin.
Mesajlar neden gelmiyor: SMTP ile gönderim
WordPress e-postaları varsayılan olarak sunucunun PHP mail() işlevi üzerinden gönderir. Bu yöntemde kimlik doğrulaması yoktur ve Gmail, Outlook gibi servisler bu e-postaları şüpheli bulabilir. Sonuç: form "gönderildi" der, ama mesaj ya spam klasörüne düşer ya da hiç ulaşmaz.
Çözüm, e-postaları gerçek bir e-posta hesabı üzerinden SMTP ile göndermektir:
- WP Mail SMTP, FluentSMTP ya da Post SMTP gibi bir SMTP eklentisi kurun.
- Alan adınıza ait bir e-posta hesabının SMTP sunucu adresini, portunu, kullanıcı adını ve şifresini girin. Bu bilgiler hosting firmanızın ya da e-posta sağlayıcınızın panelinde yazar.
- Eklentideki "Kimden" adresini bu hesapla aynı yapın.
- Eklentinin test e-postası özelliğiyle bir deneme gönderin.
Teslimi kalıcı olarak düzeltmek için alan adınızın DNS kayıtlarında SPF, DKIM ve DMARC kayıtlarının da tanımlı olması gerekir. SPF, e-postayı hangi sunucuların gönderebileceğini, DKIM e-postanın yolda değişmediğini, DMARC ise bu kontrollerden geçmeyen e-postalarla ne yapılacağını söyler. Gelen deneme e-postasını Gmail'de açıp "Orijinali göster" seçeneğine bakarsanız SPF ve DKIM satırlarında "PASS" görmeniz gerekir.
Paylaşımlı hostinglerde sunucunun IP adresi başka bir müşteri yüzünden kara listeye girebildiği için bu ayar daha da önemlidir. Hosting seçerken e-posta tarafına nasıl bakılacağını WordPress hosting ölçütleri yazısında da değindim.
Spam botlarına karşı üç katman
Herkese açık bir form, yayına girdiği ilk günlerde botlar tarafından bulunur. Tek bir önlem yerine birkaç hafif katmanı birlikte kullanmak en iyi sonucu verir.
Bal küpü (honeypot) alanı
Formda ziyaretçinin görmediği, ama botların doldurduğu gizli bir alan bulunur; bu alan doluysa mesaj reddedilir. Ziyaretçiye hiçbir ek adım yüklemez. WPForms kendi yerleşik spam korumasıyla gelir; Contact Form 7 için bal küpü alanı ek bir eklentiyle kurulabilir.
reCAPTCHA ya da Cloudflare Turnstile
Google reCAPTCHA v3, ziyaretçiye resim seçtirmeden arka planda bir puan hesaplar. Contact Form 7'de İletişim > Entegrasyon bölümünden anahtarlar girilerek bağlanır. Cloudflare Turnstile benzer bir doğrulamayı yapan, gizlilik odaklı olarak sunulan bir alternatiftir ve birçok form eklentisinde doğrudan ya da ek bir eklentiyle desteklenir. İkisini de kullanıyorsanız, ziyaretçi verisinin üçüncü bir tarafa gittiğini gizlilik metninizde belirtin.
Otomatik yanıtta dikkat
Formu dolduran kişiye otomatik bir "Mesajınızı aldık" e-postası gönderiyorsanız (Contact Form 7'de ikinci e-posta seçeneği), bu e-postaya kullanıcının yazdığı mesajı ya da adını koymayın. Botlar formdaki e-posta alanına başka birinin adresini, mesaj alanına reklam metnini yazar ve sizin sunucunuz o kişiye spam göndermiş olur. Böyle bir durum alan adınızın e-posta itibarını da zedeler. Otomatik yanıt, sabit ve kısa bir metin olsun.
KVKK açısından formda bulunması gerekenler
İletişim formu ad, e-posta ve telefon gibi kişisel verileri topladığı için 6698 sayılı Kişisel Verilerin Korunması Kanunu kapsamındadır. Pratikte şunlara dikkat etmeniz gerekir:
- Aydınlatma metni: Formun hemen yanında, verinin hangi amaçla işlendiğini, kimlere aktarılabileceğini ve haklarınızı anlatan aydınlatma metnine bir bağlantı olsun.
- Onay kutusu: Onay kutusu önceden işaretli olmamalı. Yukarıdaki örnekteki
[acceptance]etiketi işaretlenmeden form gönderilmez. - Ayrı izinler: Bülten ya da kampanya e-postası gönderecekseniz bunun için ayrı bir onay alın; iletişim talebine verilen onayla ticari ileti gönderilmez.
- Gereksiz alan yok: Bir iletişim talebi için T.C. kimlik numarası, doğum tarihi gibi bilgileri istemeyin.
- Saklama: Mesajların nerede (e-posta kutusu, Flamingo gibi bir veritabanı kaydı) ve ne kadar süre tutulduğunu belirleyin.
Aydınlatma metninin içeriği işletmenize göre değişir; metni bir hukukçuya kontrol ettirmenizi öneririm.
Formu yayına almadan önce deneme
- Formu farklı bir e-posta adresinden ve bir telefondan doldurup gönderin.
- Mesajın gelen kutusuna düştüğünü, spam klasörüne gitmediğini kontrol edin.
- Bir zorunlu alanı boş bırakıp hata mesajının Türkçe ve anlaşılır olduğuna bakın.
- Önbellek eklentisi kullanıyorsanız formun olduğu sayfayı önbellekten sonra da deneyin. Önbelleğe alınmış eski bir güvenlik anahtarı bazı formlarda gönderim hatasına yol açar; böyle olursa iletişim sayfasını önbellek dışında tutun.
- Formu doldurmanın telefonda zahmetli olmadığından emin olun. Alan sayısını az tutmak, formun doldurulma ihtimalini artırır; bunun neden önemli olduğunu kullanıcı deneyimi ve SEO yazısında anlattım.
Form tarafında birkaç pratik soru
Eklenti kurmadan iletişim formu eklenebilir mi?
Temaya PHP ile kendi formunuzu yazabilirsiniz, ama doğrulama, spam koruması ve e-posta gönderimini de sizin yazmanız gerekir. Çoğu site için bakımı yapılan bir eklenti daha az risklidir.
Gelen mesajları panelde görmek mümkün mü?
Contact Form 7 mesajları yalnızca e-postayla gönderir; Flamingo eklentisini kurarsanız her mesajın bir kopyası panelde de saklanır. E-posta bir gün gelmezse mesajı oradan görebilirsiniz.
Mesajlar birden fazla kişiye gidebilir mi?
Evet. "Kime" alanına adresleri virgülle ayırarak yazabilir ya da ek başlıklara Cc: satırı ekleyebilirsiniz. WPForms'ta aynı ayar bildirimler bölümünde yapılır.
Forma dosya yükleme alanı koymak güvenli mi?
Gerekmiyorsa koymayın. Koymanız gerekiyorsa izin verilen dosya türlerini (örneğin yalnızca PDF ve JPG) ve en yüksek dosya boyutunu sınırlayın; Contact Form 7'nin dosya alanında bu ayarlar etiketin içinde belirtilir.
Form kurulumu sitenin kurulum adımlarından yalnızca biri; geri kalanını WordPress site kurma rehberinde bulabilirsiniz. Eklentilerin yetmediği, teklif hesaplayan ya da kayıtları bir panele düşüren özel bir form ihtiyacınız varsa PHP yazılım hizmeti sayfasına göz atabilirsiniz.


