WebBlocks Campaigns
Gereksinimleri
Belgelenmiş paket sürümü: 0.7.0. WebBlocks CMS ^1.45.5; PHP >=8.3.
A WebBlocks CMS eklentisi, alıcı başına ad, adres ve diğer alanların doldurulduğu, kendi müşteri listenize şablonlu bir e-posta göndermek için.
Onay ve gizlemenin neden ayrı olduğu
Onay, kanal başına kaydedilir. Pazarlama ve operasyonel mesajlar farklı şeylerdir: Reklamları devre dışı bırakan birinin yine de "faturanızın vadesi geldi" mesajını alması gerekir, dolayısıyla tek bir işaret, bu seçeneği seçen kişileri spam göndermek ile ihtiyaç duydukları mesajları saklamak arasında bir seçim yapmaya zorlayacaktır.
EHer iletişim kaydı neden'ye yazılabilir - temel olarak, nereden geldiği, ne zaman geldiği ve açık rıza için tam olarak mutabakata varılan ifadeler. Bir içe aktarma aynı şeyi kendi aleyhine kaydeder, yani "bu adres neden burada?" sorusuna bir yıl sonra cevap verilir.
Baskılama kaydı, kişi yerine adrese göre anahtarlanan, kendine ait bir tablodur ve hiçbir içe aktarma ona dokunmaz. Bu sırayı güvenli kılan da budur: Birisi abonelikten çıkar, operatör daha sonra listeyi temizler ve orijinal elektronik tabloyu yeniden içe aktarır ve abone olmayan kişi geri gelmez. Bir adresin açıklanması tek çıkış yoludur ve bu kasıtlıdır.
Onay yalnızca bir içe aktarma işlemiyle yükseltilir, asla düşürülmez; geri alma işlemi yeniden içe aktarmadan sonra da varlığını sürdürür ve mevcut müşteriden içe aktarma işlemi zaten açık izin almış birinin düzeyini düşürmez.
İçe Aktarma
Yükleme, haritalama, önizleme, taahhüt etme. Son adıma kadar hiçbir şey yazılmaz ve reddedilen her satır kaynak dosyadaki satır numarasıyla birlikte raporlanır, böylece operatör neyin atlandığını tahmin etmek yerine elektronik tabloyu düzeltir.
Noktalı virgülle ayrılmış dosyalar ve UTF-8 Malzeme Listesi şikayetsiz okunur, çünkü Alman ve Türk elektronik tablo ihracatlarının ürettiği şey budur. Sütun eşlemesi önerilir ve hiçbir zaman tek başına uygulanmaz: Adları e-posta alanına eşleyen bir tahmin, hiç tahmin yapılmamasından daha kötüdür çünkü işe yaramış gibi görünmektedir.
A boş hücre bir değer değil, yokluktur. Yeniden içe aktarma boşlukları doldurur ve zaten orada olanı silmez.
Şablon yazma
{{ first_name }} değeri alır. {{ first_name | Kunde }}, eksik olduğunda ne göründüğünü söylüyor; adres-mektup birleştirmenin hatırlanma şekli olan "Hallo Ada" ile "Hallo" arasındaki fark da budur.
HTML'de birleştirilmiş değerlerden çıkış yapılmıştır; şablon öyle değil. Şablon size aittir, değerler bir e-tablodan alınmıştır.
Bir testi göndermeden önce iki şey kontrol edilir:
- Bilinmeyen alan blokları.
{{ firstname }}, alanınfirst_nameolduğu hery alıcısı için boş oluşturur ve düzenleyicide mükemmel şekilde görünür. Kullanılabilir alanlar, gerçekte içe aktardığınız kişilerden türetildiği için yazım hatası yakalanabilir. - A eksik geri dönüş uyarısı veriyor. Bu bir hata değil, bir yargıdır — İsimsiz "Merhaba" bazen tamamen doğrudur.
Önizleme, icat edilmiş veriler yerine gerçek bir bağlantıya göre oluşturulur, çünkü icat edilen veriler her zaman iyi biçimlendirilmiştir ve bu nedenle hiçbir şeyi kanıtlamaz. Bir test gönderimi, önceden oluşturulmuş dizeleri iletir; dolayısıyla, [TEST] önekiyle bir kampanyanın göndereceği şey gelir.
Gönderiliyor
A kampanyası, bir şablonu bir listeyle eşleştirir ve bunun ne tür bir mesaj olduğunu bildirir:
- Ticari reklamdır. Yalnızca rızası reklam yapılmasına izin veren kişilere ulaşır ve must şablonu
{{ unsubscribe_url }}içerir — aksi takdirde sıraya alma reddedilir. - Operasyonel mevcut bir sözleşmeyle ilgilidir. Bu bir reklam değildir, dolayısıyla pazarlamadan vazgeçme işlemi bunu engellemez ve abonelikten çıkma bağlantısına ihtiyaç duymaz.
Queuing göndermiyor. Alıcı kümesini hayata geçirir; bir gönderim saatler sürer ve bunu çalışmanın ortasında listeden çıkarmak, düzenlemenin kime yazıldığını sessizce değiştirmesine olanak tanır. Sonra cron işi yapar:
php artisan webblocks-campaigns:dispatch
EHer çalıştırma, site başına toplu iş boyutuna ve saatlik sınıra bağlı olarak kampanya başına bir toplu iş gönderir. Önemli olan bu sınırdır: Paylaşılan bir ana bilgisayarın SMTP'si üzerinden yapılan toplu bir gönderim, gönderen etki alanının nasıl engellendiğini ve geri alınmasının aylar sürdüğünü gösterir.
Anlık görüntüye güvenilmez. Gizleme ve izin, gönderme anında her alıcı için yeniden kontrol edilir; bu nedenle, iki saatlik bir çalışmanın bir saatlik aboneliğini iptal eden kişi, geri kalanını alamaz. Duraklatma, gruplar arasında yeniden okunur ve çalışmayı hemen durdurur.
Abonelikten Çıkma
Her ticari mesaj, alıcı başına bir belirteçten oluşturulmuş bir bağlantı taşır, dolayısıyla, hangi kampanyanın onu harekete geçirdiğini kaydeder. List-Unsubscribe başlığı da ayarlanmıştır, çünkü onun yokluğu toplu postaları spam olarak sınıflandıran sinyallerden biridir.
GET bir onay sayfası gösterir ve POST işi yapar; posta istemcileri ve güvenlik aygıtları bağlantıları istenmeden takip eder, dolayısıyla GET'i kullanmak hiç tıklamayan kişilerin aboneliğini iptal eder. İkinci tıklama başarısız olmak yerine "abonelikten çıktınız" diyor.
List-Unsubscribe-Post (tek tıklama) kasıtlı olarak not reklamıdır: istemciden CSRF belirteci olmadan POST yapmasını ister ve CMS bunu 419 ile reddeder. Başarısız olan bir yeteneği iddia etmek, onu iddia etmemekten daha kötüdür.
Aabonelikten çıkma iki kayıt yazar: mutlak olan ve yeniden içe aktarmadan sonra da devam eden bir bastırma ve operatörün gördüğü ve sitenin istendiğinde durduğunun kanıtı olan iletişimde rızanın geri çekilmesi.
Sonucun okunması
Gönderme günlüğü, her alıcıyı durumu ve arkasındaki neden ile birlikte, filtrelenebilir şekilde listeler. Bunun üzerinde atlama ve başarısızlık nedenleri gruplandırılmıştır: "412 atlandı" eyleme geçirilemezken, "390 bastırıldı, 22 onay geri çekildi" ya güvence ya da bir görevdir.
Hatalar yeniden denenebilir; atlamalar yapılamaz. Atlama bir karardı ve birini yeniden denemek ya onu tekrarlamak ya da geçersiz kılmak anlamına gelir; ikincisi, bu seçeneği devre dışı bırakan birinin postaları tekrar nasıl alacağıdır. Yeniden denenen alıcılar da diğer herkesle aynı izin ve gizleme kontrollerinden geçer.
Settings
Site başına: toplu iş boyutu, saatlik sınır, gönderenin adı ve adresi, yanıtlama. Toplu gönderimin nedeni sınırlamalardır; paylaşılan bir ana bilgisayarın SMTP'si üzerinden yapılan toplu gönderim, gönderen etki alanının nasıl engellendiğini ve geri alınmasının aylar sürdüğünü gösterir. Ekranda ayrıca giden postanın kullanılamaz olduğu açıkça belirtiliyor, bu nedenle atlamalarla dolu bir kampanyanın bir hatayla karıştırılması söz konusu değil.
Geri Dönmeler
Reddetmeler üç şekilde sınıflandırılır ve bunlardan yalnızca biri bastırır:
Anlamı
Bastırır
Ölü adres
"böyle bir kullanıcı yok", "etki alanı bulunamadı"
Evet, hemen
Geçici
posta kutusu dolu, gri listede, hızı sınırlı
Yalnızca tekrarlanan arızalardan sonra
Alıcı tarafından reddedildi
spam, politika, SPF/DKIM/DMARC, geçiş reddedildi
Asla
Üçüncü satır, tüm özelliğin ana noktasıdır. Bu retler kalıcı 5xx kodlarıyla gelir ve ölü bir posta kutusuyla aynı görünür, ancak bunlar alıcıyla değil, sizin gönderimiyle ilgilidir. Bunların engellenmesi, itibar veya yapılandırma hatası nedeniyle geçerli müşterilerin, her seferinde bir kampanya olmak üzere, sessizce silinmesine yol açacaktır. Belirsiz durumlar, bastırmama yönünde çözümlenir: Ölü bir adresi tutmak bir geri dönüşe mal olur, canlı bir adresi gizlemek ise müşteriye mal olur.
Sınıflandırma, SMTP hatasından itibaren gönderme zamanında gerçekleşir; bu nedenle web kancasına, dönüş yolu posta kutusuna ve sağlayıcı entegrasyonuna ihtiyaç duymaz; sitenin halihazırda kullandığı aktarımla çalışır.
Her reddedilme, yalnızca bir bastırma olarak değil, tarih olarak saklanır. Bastırma, nedenini veya ne sıklıkta olduğunu söyleyemez ve bu olmadan, bir dizi alıcı reddi görünmez. Teslimat sorunları ekranı, bu model göründüğünde uyarır ve neyin kontrol edilmesi gerektiğini söyler.
Kurulumu
composer plugin:build
Ardından yapıyı CMS yöneticisindeki System → Plugins aracılığıyla yükleyin. Eklenti kurulumu devre dışı; inceledikten sonra açıkça etkinleştirin.
Sözleşmeleri
handle webblocks-campaigns
settings namespace webblocks_campaigns
database prefix webblocks_campaigns_
admin routes /webadmin/plugins/webblocks-campaigns
public routes /plugins/webblocks-campaigns
route names webblocks.plugins.webblocks_campaigns.*
permissions webblocks-campaigns.view, .manage, .send, .settings
send, manage'den şu amaç açısından ayrıdır: bir taslağı düzenlemek ve onu iki bin kişiye yayınlamak farklı eylemlerdir ve bir kuruluş, birini diğeri olmadan da verebilmelidir.
Çift katılımla abone toplayın
AKayıt bloğunu bir sayfaya ekleyin ve hedef listesini, başlığı, girişi, izin metnini ve isteğe bağlı ad alanını seçin. Bir istek, bekleyen bir abonelik oluşturur. Alıcı, e-postayla gönderilen onay bağlantısını kullanmalı ve adres gönderilebilir hale gelmeden önce onaylamalıdır. Onay bağlantılarının süresi yedi gün sonra dolar.
Eklenti, kayıt sırasında gösterilen izin metnini kaydeder. Bir onay, abonelikten çıkma veya kesin geri dönüş durumlarını ortadan kaldırabilir; bir spam şikayetini veya manuel operatör engellemesini geçersiz kılmaz. Mevcut kişi adları korunur.