İletişim Formları ve Mesajları
İletişim Formu ve İletişim Mesajları, WebBlocks CMS'in birinci sınıf özellikleridir. İletişim sayfaları için Trusted HTML, ham form işaretlemesi veya mailto: yedekleri yerine yerel contact_form blokunu kullanın.
Bu kılavuz; blok sözleşmeleri, herkese açık görüntüleme sözleşmeleri, Internal Content API belgeleri ve README genelinde belgelenen kullanıcıya dönük İletişim Formu ve İletişim Mesajları davranışını bir araya getirir. Yeni çalışma zamanı davranışı tanımlamaz.
Genel Bakış
İletişim Formu bloku gerçek bir herkese açık form üretir ve kabul edilen mesajları CMS'te saklar. İletişim Mesajları, yöneticilere bu gönderimler için durum, spam inceleme sinyalleri, bildirim durumu ve güvenli teslim hatası ayrıntılarını içeren bir inceleme ekranı sunar.
CMS, saklama ve e-posta bildirimini ayrı konular olarak ele alır:
- kabul edilen gerçek gönderimler, bildirim denemesinden önce saklanır
- bildirim başarılı olabilir, başarısız olabilir veya atlanabilir; bu, CMS'in herkese açık gönderimi kabul ettiği gerçeğini değiştirmez
- herkese açık ziyaretçiler spam puanlamasını veya teslim iç ayrıntılarını değil, genel başarı veya doğrulama geri bildirimini görmelidir
İletişim Formu Bloku Ekleme
Bloku Sayfa Oluşturucu blok seçicisinden ekleyin. Yerel blok tanıtıcısı şudur:
contact_form
İletişim Formu bloku bir alt kapsayıcı değildir. Herkese açık form yüzeyinin sahibidir ve normal kompozisyon modeli olarak iç içe içerik blokları kabul etmez.
Tipik bir iletişim sayfası, yerel formun etrafında yapılandırılmış içerik kullanır:
main slot
section
container
content_header or hero
contact_form
AI/operatör araçları, canlı keşif mevcut tanıtıcıları doğruladıktan sonra aynı türden bir yapı kurmalıdır. Hedef CMS kurulumunda contact_form mevcutken Trusted HTML, ham <form> işaretlemesi veya mailto: bağlantılarıyla form oluşturmamalıdırlar.
İletişim Formu Bloku Alanları
Görünen metinler çevrilebilir:
titleveya başlıkcontentveya giriş metnisubmit_labelsuccess_message
Ortak operasyonel ayarlar blok ayarlarında bulunur:
recipient_emailsend_email_notificationstore_submissions
Editoryal metni ve operasyonel yönlendirmeyi ayrı tutun. Form metni dile (locale) göre değişebilirken alıcı ve bildirim ayarları blok için ortak kalır.
Herkese Açık Gönderim Davranışı
Herkese açık görüntüleyici, şu adrese gönderim yapan yerel bir tarayıcı formu üretir:
POST /contact-messages
Form CSRF korumalıdır ve normal ziyaretçi alanlarını doğrular.
Zorunlu alanlar:
nameemailmessage
İsteğe bağlı alan:
subject
Görüntüleyici tarafından üretilen spam önleme denetim alanı:
_form_check_nameimzalı meta verilerform_check_{token}üretilen denetim girdisi
Görüntüleyici bu alanları otomatik oluşturur. Bunları içerikte, ham HTML'de veya API yüklerinde elle oluşturmayın. Denetim alanı normal ziyaretçi girdisinin parçası değildir ve eski website alanı artık herkese açık İletişim Formu sözleşmesinin parçası değildir.
Denetim alanı doldurulmuş gönderimler, normal kabul edilen bir gönderimle aynı genel başarı davranışını alır; ancak saklanmaz ve bildirim tetiklemez. Çok hızlı otomatik gönderimler de aynı şekilde ele alınır. Herkese açık ziyaretçiler spam veya teslim tanılamaları almamalıdır.
Saklama ve İletişim Mesajları Yönetimi
Kabul edilen gerçek gönderimler, e-posta bildirimi denenmeden önce saklanır.
Yönetim yolu:
/webadmin/contact-messages
İletişim Mesajları bir yönetim inceleme ekranıdır. Herkese açık bir listeleme veya herkese açık bir teslim API'si değildir.
Yönetim ekranı, CMS kullanıcılarının gönderimleri kullanıcı kılavuzu düzeyinde incelemesine olanak tanır:
- yeni, okundu, yanıtlandı, arşivlendi veya spam gibi mesaj durumları
- varsa kaynak sayfa bağlamı
- inceleme için spam puanı ve spam neden etiketleri
- bildirimin atlandığı, gönderildiği, başarısız olduğu veya beklemede olduğu bilgisi
- bildirim teslimi başarısız olduğunda güvenli hata ayrıntıları
E-posta bildirim durumu yalnızca bildirim davranışıyla ilgilidir:
Sent, CMS'in mesajı yapılandırılmış posta taşıyıcısına istisna olmadan teslim ettiği anlamına gelir. Gelen kutusuna teslimatı garanti etmez.Failed, gerçek bir bildirim gönderiminin denendiği ve Laravel'in bir istisna bildirdiği anlamına gelir. Kaydedilen ayrıntı arındırılmıştır; parolalar, belirteçler, ham.envveya yığın izleri içermemelidir.Skipped, bildirimin denenmediği anlamına gelir; genellikle blok bildirimi devre dışı bırakmıştır.Not configured, alıcı olmadığı, mailer'ınlog,arrayveyanullolduğu ya da SMTP ayarlarının dışa gönderim yapılamayacak kadar eksik olduğu için bildirimin denenmediği anlamına gelir.Pending, henüz bildirim denemesi veya sonucu olmayan kayıtlar için ayrılmıştır.
Daha eski kayıtlı mesajlarda bildirim durumu, eski sent/error alanlarından çıkarılmış olabilir. CMS bu geçmiş kayıtları otomatik olarak yeniden yazmaz.
İletişim Mesajları ayrıca, mevcut olduğunda seçili öğelerin toplu silinmesi için ortak yönetim listeleme davranışını izler. Silmeyi normal herkese açık form işlemenin bir parçası olarak değil, bir yönetim temizlik eylemi olarak değerlendirin.
Spam İşleme
Spam işleme iki katmanlıdır.
Görüntüleyici tarafından üretilen denetim alanı katmanı anında yok saymadır:
- gizli üretilen
form_check_{token}alanı normal ziyaretçiler için boş kalmalıdır - denetim alanı doldurulmuş gönderimler genel başarı yanıtı alır
- denetim alanı gönderimleri saklanmaz
- denetim alanı gönderimleri bildirim tetiklemez
Üretilen denetim alanını geçen gönderimler yine de temkinli bir şekilde puanlanabilir. Puanlama sinyallerinin güncel örnekleri şunlardır:
- yüksek bağlantı yoğunluğu veya birden fazla bağlantı
- ticari erişim dili
- genel satış tarzı konu ve mesaj kombinasyonları
- aynı IP adresinden yinelenen gönderimler
Puanlanan spam, yönetici incelemesi için bilinçli olarak spam durumuyla saklanır. Otomatik spam silmeyi mevcut davranış olarak tanımlamayın. Yapılandırılabilir bir otomatik yok sayma eşiği, ancak üretim verileri gözlemlendikten sonra olası bir gelecek yönelimidir.
E-posta Bildirimi Yedek Zinciri
İletişim Formu bildirimi şu alıcı sırasını kullanır:
- Blok düzeyinde
recipient_email - Geçerli sitenin
Edit Site -> Contactaltındaki varsayılan İletişim alıcısı CONTACT_RECIPIENT_EMAIL- Son güvenli yedek olarak
MAIL_FROM_ADDRESS
Saklama başarısı, bildirim başarısından ayrıdır. Herkese açık bir başarı yanıtı, CMS'in mesaj akışını kabul ettiği anlamına gelir; e-posta tesliminin mutlaka başarılı olduğu anlamına gelmez. Yöneticiler bildirim durumu ve güvenli hata ayrıntıları için İletişim Mesajları'nı incelemelidir.
E-posta Kurulumu
İletişim Formu bildirimleri Laravel posta teslimini kullanır. Tipik SMTP .env ayarları şunlardır:
MAIL_MAILER=smtp
MAIL_HOST=smtp.example.com
MAIL_PORT=587
MAIL_USERNAME=
MAIL_PASSWORD=
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS=no-reply@example.com
MAIL_FROM_NAME="Site Name"
CONTACT_RECIPIENT_EMAIL=contact@example.com
MAIL_*, Laravel posta taşıyıcısını denetler. MAIL_FROM_ADDRESS, güvenli yedek gönderen/kimden adresi ve son güvenli alıcı yedeğidir. CONTACT_RECIPIENT_EMAIL isteğe bağlıdır ve yalnızca blok ve site alıcıları boşken kullanılır. Normal site yönlendirmesi için Site -> Edit -> Contact altındaki site düzeyi İletişim alıcısını tercih edin.
Üretim bildirimi için SMTP gibi gerçek bir dışa gönderim mailer'ı kullanın. MAIL_MAILER=log, MAIL_MAILER=array ve MAIL_MAILER=null geliştirme veya testler için yararlıdır; ancak gerçek bir dışa bildirim denenmediği için İletişim Mesajları bunları gönderildi yerine yapılandırılmadı olarak gösterir.
Bir üretim veya paket kurulumunda .env posta ayarlarını düzenledikten sonra, config önbellekleme etkin olabilecekse önbelleğe alınmış yapılandırmayı temizleyin:
php artisan optimize:clear
Sorun Giderme ve Tanılama
Yerel geliştirme için yerel bir SMTP yakalayıcı veya güvenilir bir SMTP test hesabı kullanın. Operatör o ortamı bilinçli olarak yapılandırmadıkça iletişim teslimini kişisel veya üretim posta kutularına karşı test etmekten kaçının.
Tanılama komutu şudur:
php artisan contact:mail-diagnose
Belirli bir İletişim Formu blok kimliği kullanarak o blok için alıcı yedek sırasını inceleyin:
php artisan contact:mail-diagnose --block=ID
Denetimli bir SMTP gönderim kontrolünü yalnızca hedef test adresi bilinçli olarak seçildiğinde kullanın:
php artisan contact:mail-diagnose --send-test=address@example.com
Tanılamalar parolaları, belirteçleri, posta gizli anahtarlarını veya ham hassas yapılandırmayı yazdırmamalıdır. Başarısız, atlanmış ve yapılandırılmamış bildirim ayrıntıları İletişim Mesajları'ndan incelenebilir. Saklanan gönderimler ve bildirim durumları için İletişim Mesajları'nı doğruluk kaynağı olarak kabul edin.
Yayına Hazırlık Denetim Listesi
Herkese açık bir iletişim sayfasını yayınlamadan veya duyurmadan önce:
- Yönetici oturum açmanın çalıştığını doğrulayın.
- Site kimliği ve alan adı ayarlarının doğru olduğunu doğrulayın.
MAIL_*teslimini veya onaylı sistem posta ayarlarını yapılandırın.- İletişim alıcısını yapılandırın; tercihen
Site -> Edit -> Contactaltında. php artisan contact:mail-diagnosekomutunu çalıştırın.- Yerel
contact_formblokunu içeren bir sayfayı önizleyin veya yayınlayın. - Ad, e-posta, konu ve mesaj içeren bir test mesajı gönderin.
/webadmin/contact-messagesekranının saklanan mesajı gösterdiğini doğrulayın.- Bildirim durumunu ve varsa güvenli hata ayrıntılarını inceleyin.
Bildirim başarısız olur ancak mesaj saklanırsa bunu başarısız bir herkese açık form gönderimi olarak değil, bir posta teslim sorunu olarak değerlendirin.
Internal Content API ve AI Operatör Desteği
Internal Content API, güvenilir AI/operatör araçları içindir. Herkese açık bir teslim API'si veya bir AI sağlayıcı entegrasyonu değildir.
AI/operatör araçları canlı keşifle başlamalıdır:
GET /webadmin/api
Ardından güncel sözleşmeler için keşfedilen bağlantıları kullanın:
GET /webadmin/api/content-contract
GET /webadmin/api/block-types
GET /webadmin/api/examples/contact-page
GET /webadmin/api/examples/contact-page, yerel contact_form kullanımını gösterir. AI/operatör araçları tanıtıcıları tahmin etmemeli ve yerel İletişim Formu bloku mevcutken Trusted HTML, ham form işaretlemesi veya mailto: bağlantılarıyla iletişim formları oluşturmamalıdır.
İçerik uygulama taslak önceliklidir ve varsayılan olarak yayınlamaz. Operatörler planları doğrulamalı, yalnızca açık onaydan sonra uygulamalı, taslak sayfayı önizlemeli ve yayınlamayı bir insana veya açıkça onaylanmış bir iş akışına bırakmalıdır.