Değişiklik Günlüğü
Yeni ne var?
Gemideki her iyileştirme.
· EmailService
DKIM anahtarlar ve organizasyonların domain gönderme domainleri için rahat/relaxed rsa-sha256 işareti
DkimKeys bir domainin RSA-2048 anahtarını oluşturur (veya şifreli toplu sağlayıcı blob) ve TXT TXT Bir üye kamoXXX. domainkey.<domain>'de yayınlar. DkimSigner tam olarak bir mesajı işaret eder Nakliye onu gönderecektir - son kurtarma değişimlerinden sonra yazmaktan okuyun - andan itibaren ve hangisine kadar Başlıklar alıcılar ve geri bildirim döngüleri mevcut (Feedback-ID dahil, hiçbir zaman bir X- başlığı yoktur, çünkü Tavşan şeritleri X-Kamo-Ref. Apache jDKIM tarafından yapılan testlerde bağımsız bir uygulama: bir kampanya- Şekillenmiş mesaj, hala röle şeritleri X-Kamo-Ref'i bir kez doğruluyor ve değişmiş bir vücut üzerinde veya başarısız oluyor Konu.
· EmailService
Domainler göndermek için DNS - her domainin kendi adıservers ilk olarak, SPF değerlendirmesi, DNS sağlayıcısı
LiveDnsResolver, bölgenin yetkili isim sunucularından ( 1.1.1.1/8.8.8.8 aracılığıyla) sorar, bu yüzden bir rekor bir rekor bir rekor Sadece DNS sağlayıcısında kurtarılan üye, bir çözümleyicinin olumsuz önbellekinden bir kez görülür Geçler; bir yönlendirme veya bir süre içinde halka geri düşer ve TCP'yi bir kez tekrar tekrarlar. Cevap bir verigram sığmıyor (dnsjava 3.5 Google'ı parseyemiyor. com's truncated TXT aksi halde). SpfEvaluator, bir alıcı sunucusu olarak bir IPv4 adresi için bir domainin politikasını değerlendiriyor (RFC 7208: ************ yönlendirme, 10 gözlenme ve 2 göz ardı limitleri), bu yüzden bir CNAME to temas.kamocrm.com, bir dahil, ya da çıplak bir ip4 hepsi aynı şeyi okudu. DnsProviders, şirketi çalışan isimler Bir bölgenin DNS ismi sunucularından, sağlayıcıya özel talimatlar için.
· EmailService
Paylaşılan ya dag r röle (47.181.8.86) her organizasyon için tohumlanır; platform röle KamoCRM'nin kalır
PlatformRelayProperties şimdi hem in-cluster rölelerini biliyor: ek-bulk (47.181.8.87, merhaba.kamocrm.com) and postfix-orgs (47.181.8.86), egress adresi, DKIM seçicior ve DNS hedef organizasyonları'nın Domainler CNAME'yi (ile.kamocrm.com) gönderir. Her ikisi de röle olarak sayılır, bu yüzden her ikisi de teslimat raporları alır. Başlangıç eki fiş tohumları k3m1-org-relay bir SHARED platformu host (STARTTLS + PLAIN işareti-in from the Seçmeli Gizli Bulk-org-relay-auth, kendi kendini teslim etti, KamoCRM'nin kendi rotasyonunda çıktı Bu yüzden posta .87'de kalır; bir işaret ayarlandığından ve kimlikleri yapılandırılır. Her başlangıç. k3m1-bulk-relay bir kez PLATFORM ONLY yapılır.
· KlusterServices
Postfix-orgs, paylaşılan toplu röle her organizasyon 47.181.8.86 olarak gönderir
KamoCRM'nin kendi kampanya postası, ek-bulk (47.181.8.87) ve düzenli posta yoluyla postadan ayrılmaktadır. postfix (47.181.8.84). Diğer her organizasyonun kampanyası postası kendi IP'sini alır: ek-orgs çalışır k3m1'in ev sahibi ağı ve giden SMTP'yi eno1 (k3m1-ext), node- configure/k3m1-ext rotaları O limandan ve başka hiçbir şey kullanmıyor. HELO kontak.kamocrm.com, adı Frontier olarak ayarlanıyor IP's PTR. Ev sahibi birNetwork dinleyicisi NetworkPolicy'e sahip değildir, bu yüzden teslim SASL, limanda 587'de gerekli olan YouTubeTLS'dir. Node'nin iç adresi, küme adreslerinden sadece ( posta/SECRETS.md'de gizli). Bu sadece olduğu gibi Transfer domains E-postaHizmeti her dakika doğrulandı - bu harita geldiğinde hiçbir şey olmadı. Aynı egress guard as postfix-bulk teslim olarak eno1 .86 ve .86 olarak ayrılmak için doğrulanır. Aynı teslimat-events sidecar sonuçları rapor eder. Her reddedilme 4xx, asla 5xx değildir. Dağıtım akışı zaten geçerli olan dosyalara eklendi, bu yüzden iş akışı (ve tam bir uzlaştırma) Her bileşen) istenmiştir.
· kamo-internal
Kampanya sekmeleri, seçilen sekmeyi saklamadan geri dönüyor
Bir ekranda beş alttab için çok dar, şerit şimdi sol ve sağ Bunun yanında oklar, en üst düzey-window sekme şerit yaptığı gibi. O zamandan beri hiç yoktu. İlk versiyon, MUI'nin "auto" kaydırma düğmeleri bağlantı tarafından açılan bir sekmeyi kesti (?tab=archived) yarıda: sadece seçilen MUI'nin ardından görünürler Bakışta sekme, striptizden 80px alın ve MUI'nin kendi kaydırma animasyonu o zaman Overwrote herhangi bir düzeltme. KampanyaTabStrip, sekmeleri kendi barına sahip olmayan bir düzelmele koyar (data-kamo-scrollbar="off), okları sadece sekmeler aşırı akışı ve ve Seçilen sekmeyi ne zaman değiştirir ve ne zaman değiştirir. oklar geliyor ya da genişliği değiştirir.State ok ve ARROW SCROLL FRACTION En üst düzey TabStrip Modeli'nden gelir, bu yüzden her iki striptiz de bir ok olduğunda kabul eder. Yaşamak ve ne kadar uzağa hareket ediyor. Chrome'da kontrol edildi: 1600px'de ok yok; 700px ve 520px tarafından açılan her sekme bağlantı, orta olanlar da dahil olmak üzere altındaki göstergeyle tamamen görünür; oklar sayfası her şekilde şerit; OkDoğru sekmeler ve sekmeler boyunca odaklanır Bakıştaki odaklanmış sekmeyi tutar ve onu seçer. ok etiketleri bileşenleridir. kaydırmanın, her yerelde el tarafından tamir edildi kamo-translation-dictionary cc484906 (Arapic, Scroll right için "damn it" vardı). Buradaki Vitest kırmızılar bu değişimden değil ve aynı anda başarısız: OneScrollbar.test.ts (on NavTopMenuPanel.tsx) ve alıcıStatus.test.ts (4,, 4, 98156e52).
· kamo-internal
E-posta kampanyalarında canlı bir gönderi bir göz kartı alır
Bir ilerleme gönderirken, In-Progress sekmesi tek bir ince sıraydı Oda ile çok daha fazla pane, şu anda widget çoğu önemli. When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When When Bir sekmedeki her kampanya gönderilir veya duraklanır ve panel her birine verir En azından minimum yüksekliği, her biri şimdi bir kart alır: - listeden ne kadar uzakta, çok sayıda turda, bu yüzden Hiçbir şey solunda% 100'ü asla söylemiyor; - 10px'deki şerit, kafa ve oen görünür; - hız ve zaman ayrıldı ve "toplamdan"; - teslim, açıldı, tıklayın ve atladı, hızdaki bir eğlence olarak Bir kart üzerinde para kazanmak için (gerçek bar uzunlukları ve oranları) veya as Daha kısa veya daha dar bir rakam üzerinde bir dizi rakamlar; - son 5 dakika boyunca hız, saatin kendi başına 15 saniye bir bar Sınırlar. Bar hala dolduruluyor ve pane daha önce zaman Gönder bir ub, sıfır değil. Kartın satırın bağlantısı ve duraklama/resume vardır (hem şimdi paylaştı, KampanyaRow). Bu kutlamaları bitirerek tutar. Two sent sit side geniş bir panede yan yana. Seçim sadece panelin boyutunu okur, hangi içindeki hiçbir şey değişebilir, Bu yüzden flicker olamaz. Overflows'ın her neyse hatırlandığı bir kart Panel büyüklüğü, hangi sonra sıraları gösterir. Kartın içindeki yapılardır Kartın kendi büyüklüğü üzerinde konteyner sorguları. Model: hızBuckets, zaman içinde iki çerçeve arasında neyin taşındığını yayıyor aralarında. pushSample bir pencere alır ve kanca beş dakika tutar Canlı gönderi, bir duraklama ve bitiş yoluyla. Farklı bir hızla 10x saat boyunca, normal, geniş, çok fazla Yüksek, 460 ve 668x420 panes ve iki geniş ve uzun pante gönderir: Kartlar aşırı akış olmadan sığamaz ve hız barları çerçeveleri takip eder, ayrıca çerçeveleri takip eder. Sessiz bir streç. Hiçbir şey azalmış hareket altında hareket eder.
· kamo-internal
E-posta Kampanyaları widget sekmeleri kampanya ekranlarının aşamalarıdır
Widget kendi Live / Sent / Taslakları altında kampanyalar açtı, bu da bir araya getirdi. Sent altında iptal edilen kampanya ve Live altında planlanan bir kampanya. Onun sekmeleri şimdi In-Progress, Başlamadı, Pause ve Tamam, KampanyaTabOf tarafından sunuldu ve adı verildi Pazarlama.bulkEmail.tabs.*, bu yüzden başlatmapad ve / pazarlama / e-posta asla Bir kampanyayı iki yere koyun. Konts E-postaService'ın yeni “ aşamalarından” geliyor (7481f15); eski bir sunucunun cevabı, gönderdiği kampanyalardan sayılır. sekmeyi seçin: - Üye bir tane seçmeye kadar, pane toprakları neler oluyor ve kalıyor Bu sekme hala bir şey tutarken. Bu sadece bir gönderme göstermek için hareket eder Ya da kendi sekme bittiğinde. Sadece bitmiş bir gönderi Onun kutlaması için içeri girin, sonra pane hareket eder. - Üye duraklar veya özgeçmişler bastıkları yerde kalır, onunla Resume, sekmeden ayrılana kadar. Aşama isimleri “N daha fazla” yanında uygun olduklarını gösteriyor, gizli bir gizliliğe karşı ölçtü. Üyenin dilinde kopya; aksi takdirde her aşama onun ikonunu gösterir, Onun aracıtip ve erişilebilir adı. Tarayıcıda kontrol ederken düzeltmeler bulundu: - bitmiş bir kampanyada yeni açılan ve tıklamalardan gelen Sparks asla görünür değildi: rakamlar onları çarpıttı. Artık sadece aşağıda ve onun yanında, Ve kıvılcımlar metrenin sonundan uçuyor, bu yüzden barlar düşüyorlar. - Onun rakamları için çok dar bir sıra, Opened metreyi Clicked üzerinde çekti. The The The The The The The The Barlar ilk önce 340px'in altında giderler ve hala sığmayan her şey Bütün görüş. - Bir KPI ismi ve oranı için çok dar ("Ope...") Oran şimdi bunun yerine görüşten çıkar. - "Daha fazla" önceki sekmeden ayrılan satırları saydı. pane genişliklerinde 322 ila 1360 arasında dikkat edin: Hiçbir satır kes, hiçbir sekme aşırı, İsim/icons geçiş ve "N more" olmadan, ok anahtarları, bir bitiş daha sonra Harekete geçti ve 668 ve 460'ta yırtıldı. Durak testinin sunucusu şimdi Durak kampanyayla cevaplar. widget'ın ne zaman yük altında başarısız oldu Bir duraklamadan sonra 400m'ler kampanyayı hala gönderiyor.
· EmailService
Kampanyalar widget sahne tarafından okur, kampanya ekran dosyalarının aşamaları
Başlatpad widget'ın şu anda okunuşu ve aşamalar tarafından kampanyalar sayılıyor / pazarlama / e-postanın sekmeleri: In-Progress (sending), Başlamadı (draft veya ya da Planlanan, Pa used (pa used or Cancel), Tamam (sent). Başarısız dosyalar, nasıl Şimdiye kadar, kampanyaTabOf orada. Her aşama kendi başına kapıldı: draftlardan ve en kısa sürede planlanmadan önce planlandı. “ aşamalar ‘gruplar’ın yanında eklenir, bu okumayı okuyana kadar kalır Bu dağıtılır. Bundan önce, iptal edilen bir kampanya sona erdi, hangisidir Kullanıcı bugün karar verdiği yerde ait değildir.
· kamo-internal
Kampanya listesi, meslektaşlarının bir kampanyaya ne yaptığını takip ediyor, canlı
BulkEmailWorkspace şu anda değişim çerçevelerini kullanıyor (Değişim, d0b56adf). Bir çerçeve bir kampanya ve buna ne oldu, Asla kampanyanın kendisi değil, bu yüzden liste bir kampanyayı tekrar tekrar okur GET /campaigns/{id} ve onu yere koyun. Bir meslektaşın arşivi veya geri yükleme hareketleri Buradaki sekmeler arasındaki sıra, yeni veya tekrarlanan bir kampanya ortaya çıkıyor, Ve bir silinmiş bir ya da şimdi 404 yanıt veren biri, listeyi bırakır. Sahnelendi outbox count aynı çerçeveleri takip eder. CampaignChangeFollower bir seferde kampanya başına bir okuma tutar. Frames that Bir kampanya okunurken gelir ( dilimlerde yüklenen bir liste her şeyi ilan eder dilim) geri döndüğünü bir kez daha okumak isteyin, bu yüzden bir patlama iki okur ve bir an Eski cevap hiçbir zaman yeni bir kişinin tepesinde yer almamaktadır. Okurken bir kampanya silindi Yolda geri döndüğünde geri dönmedi. Chrome'da kanca yoluyla çerçeveleri iterek gerçek bileşene karşı kontrol edildi: Bir geri yükleme, bir okuma ile Archived'ın sırasını taşıdı, bir silme sırasını kaldırdı Hiçbiri ile birlikte, yaratılan bir taslak başlamadı ve beş çerçevede tek başına ortaya çıktı. Kampanya iki okuryazarlığa mal oldu.
· kamo-internal
E-posta Kampanyaları widget, başlatpad üzerinde yaşamak
Yeni bir ev kutusu, e-posta.campaigns, açıklayabilecek herkesin lansmanı üzerine Kampanyalar. Beş hakkı (EMAIL CAMPAIGNS WIDGET, 321-325) takılmak İNCELE BULK EMAIL ve ADDED, OPENT ve MOVABLE tohumunu ondan in Güvenlik Hizmeti, bu yüzden geliyor ve üyenin ortadan kaldırılması. Kapı ayrıca Pazarlama uygulaması ve DULK EMAIL'nın kendisi için sorar. Ne gösterir, E-postaHizmetinin yeni /api / e-posta /widget /campaigns'i bir kez ve Ondan sonra yaşamak: - Son iki hafta için dört rakam (sent, açılır, tıklamalar, kaybolur), her biri ile Pointer veya ok anahtarları tarafından okuyan bir gün bar ve açık ve kapalı oranları tıklayın Verilebilir kart kullanımları (engagementRate, Şimdi her ikisi tarafından paylaşılan). - Live / Sent / Taslaklar, sayılarla. Bir gönderme kampanyası hareket eden bir şerittir, Onun hızı ve zamanı kaldı; açılır ve tıklamalar toprak olduğu gibi yükselir. A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A Bir duraklama neden gönderemeyeceğini söylüyor; planlanan bir sayı aşağı; gönderilen bir kişi Açık ve tıklama oranları gösterir. Pause ve özgeçmiş bir üye için sıraya oturur MANAGE BULK EMAIL ile. - pane saatleri onun an için canlıyken bitiren bir kampanya, Bir patlamayla, sent'e gitmeden önce. - Alt çizgi, olduğu gibi haberleri taşır; geniş bir pane onu bir ortamda tutar Bugünün toplamları ile sütun. - Odası için dışarı çıkıyor: bir sütunda iki rakam ve kompakt satırlar, bütün bütün bütün satırlar sadece herhangi bir yükseklikte ( liste kesintiye uğramadan ziyade sarmalar), ve iki sütun Sadece bir kez geniş bir panede kampanyalar biraz gizleyecekti. Canlı yarı yolculuk / son / kampa / <orgId>. useEmailCampaignsWebSocket read Her çerçeveyi okuyunCampaignFrame ve Engagement, onChanged ve OnSnapshot, artı talepSnapshot, which the widget goes off so astartpad Bir anlık için tüm organizasyonunu asla sormaz.Progress hala sadece sadece görüyor İlerleme çerçeveleri. Bit chime şimdi SENT'e geçişte yangınlar, üzerinde değil SENT'i hala söyleyen her sonraki çerçeve (kir ve teslimat raporları Onu saatlerce yayımla, ve kanca artık eller ref yazmıyor Form. tsc ile doğrulandı, bekçi senaryoları, yeni ve etkilenen atkan dosyaları ve 1x1, 2x1, 2x3 ve tam genişlikteki gerçek bileşen üzerinde kafasız kullanım.
· kamo-internal
In-Progress, Başlamadı, Pa used, Complete ve Archived sekmeler ve the menüsünü açıyor
/ pazarlama / e-posta kampanyaları beş alt-taba ayırır, her biri canlı bir sayıyla, Ve her kampanya tam olarak bir altındadır: - In-Progress: send - Başlamadı: taslaklar ve planlanan kampanyalar - Pa used: durakladı ve iptal edilen kampanyalar - Tamam: gönderildi - Archived: Bir üye arşivlendiyse Başarısızlık kendi bir sahne değildir: alıcılar başarısız olur, bir kampanya yapmaz ve E-posta servisi asla onu ayarlar. Gönderdiği bir kampanya ne kadar uzağa gönderildi Var. sekme ?tab=, bu yüzden yeniden yük, arka düğme ve paylaşılan bir bağlantı devam ediyor Bu; bir kampanya kendi durumu değişikliklerinin yaşadığı gibi sekmeyi değiştirir; ve boş boş bir boşluğa sahiptir. sekme bunun ne olduğunu söylüyor. Arşiv ve geri yükleme her kampanyanın . menüsündedir (email servis 39ffa54). Sadece sadece bir Gönderilecek hiçbir şey ile kampanya arşivlenebilir: bir taslak veya gönderilen veya gönderilen veya Bir tane iptal etti. The düğmesi kampanyayı da menüsü olarak açtı. AG Grid yangınları sıralandı Kendi yerli dinleyicisinden arka planda, hangi Reaksiyon'un önünde çalışır Close'da delege, bu yüzden cep sunucusu çok geç geldi ve Sıra menü altındaki editöre yol açtı. Arka eller şimdi geçelim Bir data-campaign-own-kupun kontrolü içinde tıklamalar, çünkü İzleme kodları yapar, Ve kampanyanın adına bir tıklama artık editör rotasını iki kez zorlamaz. Chrome'da gerçek bileşene karşı kontrol edildi: kökeni / the tıklaması gitti **************** Bu değişiklikle menü açar ve gider Hiçbir yerde. Tablar, saylar, arşivler ve geri yükleme, boş sekmeler ve 520px şerit oldu Aynı şekilde kontrol etti. Kelimenin kamo-translation-dictionary 02109cfc'de olduğu, ilk önce itilir ve yazılıdır. Her yerelde el ile.
· EmailService
Bir kampanya Arşivi ve widget arşivleri terk ediyor
POST ************ ve /unarşist (MANAGE BULK EMAIL) set ve Kampanyanın arşivini açıklayın ve KampanyaDTO bunu taşır. / pazarlama / e-posta Ekran dosyaları kendi Archived sekmesi altında arşivlenen bir kampanya. - Sadece göndermek için hiçbir şey olmayan bir kampanya arşivlenebilir. A planlanan, gönderme veya duraklama biri reddedilir: Önce iptal edin. Archiving tekrar ilk tarihi tutar. - Şimdi gönder, zamanlama ve en son net arşivlere gönderin, bu yüzden tekrar gönderilen bir kampanya Çalışma sekmelerine geri döndü. Her ikisi de ARCHIVED / UNARCHIVED değişim çerçeveleri olarak ilan edilir, böylece her açık açık Kampanya ekranı ve ev widget güncellemesi canlı. - KampanyaWidgetReads, son zamanlarda, InStatuses ve Yemin ederim, Kamo-shared-library ebdd15f1 ************ ve arşivlenmiş at sütunu, her ikisi de zaten yerinde. İşlemalSendRatchetTest, bu taahhütten önce ve hala kırmızıydı; Burada hiçbir şey Kullanıcı'ya göndermiyor. Diğer 1554 testleri geçer.
· kamo-shared-library
Bir kampanya arşivlenebilir
E-postaCampaignEntity archivedAt (arşist olarak) arşivlendi: Bir üye arşivlendiklerinde Kampanya, olmasa da null. / pazarlama / e-posta ekranı bir Archived sekme alır Ev öğesi arşivlenen kampanyalardan ayrılır. sütun zaten kümede, her şema değişikliği olarak el tarafından uygulanır: ALTER TABLE email campaign.email campaigns ADD COLUMN IF EXISTS archived at timestamp/6) zaman bölgesi ile değil; Masadaki diğer anlıklar gibi varsayılan olarak Nullable, bu yüzden kod inşa edildi Bundan önce masa değişmemiş.
· EmailService
E-posta Kampanyaları için canlı bir okuma ve canlı çerçeveler ev widget
GET /api / e-posta /widget /campaigns, bir okuma için inşa edilen bir başlatıcıdır. Bütün gün her kampanya izleyicisinin ev sayfasında oturan pane: yalın satırlar Vücut (CampaignLine), ilk önce canlı kampanyalar (kesinlikle, en kısa sürede planlandı) O zaman en yakın zamanda sona ermiş ve son zamanlarda düzenlenmiş taslaklar, her grup capped; Grup başına kesin sayı; her gösterilen kampanya açılır, tıklamalar ve Bir boru hattında Redis raporları; organizasyonun son on dört Günler; onun takip seçimi; ve notdowns için sunucu saati. Bu alır DULK EMAIL, kampanya listesi yaptığı gibi. Üç çeşit çerçeve şimdi bin /top /campaigns /<orgId> ilerlemenin yanında: - Katılım: KampanyaEngagementPulse kömürleri ilk önce açar, ilk tıklamalar ve Kampanya başına raporlar gönderin ve en fazla bir çerçevede pod başına bir saniye gönderir, Son çerçeveden beri yeni olan ve Redis olarak toplamlar onları tutar. - değişti: KampanyaController bir üyenin yaratışını, düzenlemeyi, silmeyi duyurdu Yine de, program, gönderin, duraklama, özgeçmiş, iptal, seyirci ve alıcı Servis çağrısı tamamlandıktan sonra değişiklikler, bir id ve sadece bir fiil olarak. - Ne üst düzey bir kampanya yürütüyor Id. Her kampanya ekranı bir çerçeve okur İlerleme olarak biri ile karşılarını sıraya kopyalar, bu yüzden bir çerçeve Birini taşıyan başka bir şekil hala ekranlarda sayıları boş tutar Eski kod. Gönderici ayrıca gün kabul edilen mesajları bir kez topluca sayıyor (stats.daily "sent") which the widget's two-week kıvılcımlines from. Full süit bir başarısızlıkla 1534 test, İşlemalSendRatchetTest, Bu, c47fcf6'dan bu yana Kullanıcı aşırı yüklemelerini sayar ve bununla ilgili değildir.
· SecurityService
E-posta Kampanyaları widget kampanyalarını açabilir herkes için geliyor
EMAIL CAMPAIGNS WIDGET ve onun ADDED, OPENT ve MOVABLE politikaları tohumlama İNCELE BULK EMAIL on the boot that introduce them, so the pane land on the Kampanyaları zaten okuyabilen her üyenin lansmanıpad ve bu Onların kaldırmak veya hareket etmek için. REQUIRED tohum yapmaz, her bir pencere için: Kimsenin ev sayfasına asla pane dağıtma.
· kamo-shared-library
E-posta Kampanyaları ev widget'ın beş hakkı
EMAIL CAMPAIGNS WIDGET (321) ve dört politika çocuğu (322-325), aslen İNCELEME BULK EMAIL: Her şey widget'ın arkasında, kampanya listesi, onun Karşılıklar ve canlı ilerleme çerçeveleri, zaten bu hakkı alır, bu yüzden widget asla bir şekilde yuvarlak olamaz. 326 bir sonraki ücretsiz id.
· kamo-internal
E-posta Kampanyaları ilk Pazarlama sekmesidir
Pazarlama Araçları sekmesi şimdi E-posta kampanyalarını, Pazarlama Malzemeler okur, Sosyal Medya, İzleme Kodları. Bulk E-posta yeni adı altında cepheye taşınır, ve malzemeler kendi sayfasını zaten gösteriyor. Bir üyenin ilk sekmedeki / pazarlama indeksi toprakları açık olabilir, bu yüzden siparişi şeritle hareket eder: varsayılan olarak e-posta kampanyaları, bir pazarlama materyali için e-posta hakkı olmadan üye. Yol, etiket anahtarları ve DULK EMAIL İsimlerini tut. Kelimenin kamo-translation-dictionary 98a21a21a21'de olduğu, ilk önce itildi. Her yerelde el ile yazılmış iki etiket.
· kamo-marketing
Çözümleri Kaynaklar altında hareket eder, bir seviye aşağı
Üst sıra telefon numarasından önce beş kategori taşıdı, dil dili Seçici ve üç CTAs. Çözümler şimdi Kaynakların ilk öğesidir, İki makale bağlantısının üstünde ve sekiz endüstri sayfasını bir şekilde tutar Üçüncü seviye uç. Former'de hiçbir şey değişmedi: Nav çocuk zaten kendi kendi kendi kendine taşıyor “Çocukların ve Yasal, tüm bu şekilde kaynaklar altında ihmal edilmiştir, masaüstünde ve hem de mobil açıdan. Bu sadece verilerdir. "All Industries", katlanmak yerine ilk büyük çocuk olarak kalır ebeveyn sırasına, çünkü mobil ebeveyn bir toggle düğmesi değil, bir değil bağlantı - /çözün kendisi olmadan bir telefonda ulaşılamaz. / dağıtım sayfaları hala kategorilerini aydınlatıyor:CategoryActive zaten Torunları yürür, bu yüzden Kaynaklar çözümlerin nerede kullanıldığını vurgulamaktadır. /en/ens/real-estate'i onaylayın - Kaynaklar #ffffffffffffff rgba (107,142,58,0.1) ve diğer dört konaklama #9a9a9a. Çalışan sayfaya doğrulandı, kaynak değil. Üst satır okur Özellikler, Hizmetler, Fiyatlama, Şirket, Kaynaklar; Daha sonra Kaynaklar Çözümleri, sekiz endüstriyi kendi / ekleriyle açar. Uçucu 200px geniş ve 1001, 1001, 1076 ve 1316'daki doğru kenar toprakları 1024'ün bakış açıları (bu nav'un her şeyde göründüğü lg breakpoint), 1280, 1440 ve 1920 - her birinde, yatay olmayan, Overflow. 390 çapında bir telefon Kaynakları açılır, Çözümler açılır, Ve sekiz bağlantı var. tsc, check-client-navigasyon ve check-i18n-keys temiz.
· kamo-marketing
Uygulama geliştirme, web tasarımı ve web pazarlama
****************, bir ajansın bir ajans ödediğini iddia ediyor Koltuk başına yazılım için ödeme ajansı inşa etmedi, ev sahibi ya da tutmak koşmak. Bu parayı kimin kazanacağını ve asla sahip olmadığını sorarak sona ermiştir Kapıya kapı. Bu kapıdır. 59 / hizmet altındaki sayfalar: bir merkez, üç sütun, 30 kapasite sayfası, 12 Kanıt sayfaları, 5 karşılaştırmalar ve bir nişanın gerçekte nasıl altı çalışır. TypeScript'ta Yapı, sözlükte prose - desen 37 endüstri, 45 entegrasyon ve 41 parlak terim zaten kullanılıyor, bu yüzden bir çevirmen her cümleyi yeniden yazabilir ve bir sürek veya bir çeke zarar veremez Yol. Dört yeni koleksiyon, “servis” adı yerine kapılandı “collections’tan daha fazlası: ikincisi zaten birçok yerele tercüme edilir Bir Fransız servis sayfasının bir kelimeden önce var olacağını iddia etmek ve yeniden kullanmak yapar. Bugün her hizmet sayfası İngilizceye kanonik ve görünür İngilizce sitemap sadece, bu zaten bir makine için ne yapıyor kopyalamanın tercüme edilmediği sayfa. Portföy kendi platformumuzdur, çünkü izin verebileceğimiz tek şey Bir ziyaretçi denetimi: posta sunucuları, telefon anahtarları, WebRTC medya yığını, bağlantı hattı, küme ve bu web sitesi. Bu sayfalardaki her sayı, nereden geldiğini ve günden itibaren gelen komutu taşır. Okundu ve senaryolar / kontrol hizmetleri.ts bir gerçek üzerinde inşa edemez Ne var - bir yığınla birlikte bir statik / hizmet çocuğunun çocuğu gölge, bir dangling kanıt referansı, bir yetim iş sayfası ve bir Buna karşı bir dava adı veremeyeceğine kıyasla. Son kural bu değil Dekorasyon: Kendine karşı tartışamayan bir karşılaştırma sayfası Bir masa giyiyor. Fiyatlama, bir masadan ziyade mekanizması yayınlar. Daha sonra alıntı yapıyoruz İlk önce sayıyı keşif ve düzeltin; ne hareket eder, asla içinde değil ( reklam harcamalarının yüzdesi yok, sizin için satın alınan herhangi bir şeye işaret yok) ve Öğrendiğiniz zaman tüm / hizmetler /nasıl-we-quote. / hizmet / başlangıç / Mevcut bir konuyu kasıtlı olarak yayınlar - destek hizmeti çözüyor Konu zaten var olan konulardan ve cevaplardan 400 başka türlü, Bu yüzden "Web Design" konusu derlenmiş, dağıtılmış, doğru görünüyordu, Ve her şeyi reddetti. Bu özelliği katı olmayan iki erişilebilirlik düzeltmesi, ancak gemide Her sayfanın. Globals.css:52 asla bir ham kullanmadığını söylüyor - renkli-primary* Küçük metin için; kurabiye onay bayrağı, 2.18:1'de, her sayfada Sitenin ve İlgiliContent aynı şeyi çözümleri, entegrasyonlar, Alternatifler ve parlak. Her ikisi de şimdi okunabilir aksayı ve banner'ın politika bağlantıları beyazdır - renkli-accent-on-canvas hesaplamalı tuvale tam olarak 4.5:1 vurdu, bu da hiçbir baş oda bırakmaz Biraz yükseltilmiş yüzey, panjur üzerinde oturur. Tüm 19 hizmet sayfası, the all 19 service pages, the the all 19 service pages, the the Ana Sayfa, /pricing and /solutions/* şimdi WCAG 2.2 AA'da sıfırdan geçiyor ihlaller; ücretlerin makalesinin kendi masası-of-contents badges hala başarısız ve başarısız Yalnız bırakılır.
· kamo-marketing
Yazılım aboneliklerinizi saymak için bir makale ve pankart noktaları buna
/ all-in-one-business-software, bir işletmenin ne kadar çok abonelik ödediğini soruyor: bir çek listesi Onları ve ayda toplamları ve okuyucu onu işaret ettiği gibi, bir yığın maliyetinin ötesine ne pahasına olursa olsun. Faturalar, her biri her şeye değer olmak için ne demek zorunda, konsolide etmeden önce soru sormak, KamoCRM nasıl aynı zemini kapsar. İki dış rakam, her biri kopyada adı ve bağlantılı Ayak: Zylo'nun 2026 SaaS Yönetim Endeksi kullanılmamış lisanslarda ve kim yazılımların harcandığını kontrol eder ve Cledara'nın 2025 Yazılım Harcama Raporu, ne kadar çok işletme araç sayılarını hafife düşürdü. banner'ın kamu hizmeti duyurusu şimdi burada koltuk-fee makalesinden ziyade işaret ediyor. Onunla onun etiket yeni bir anahtardır, eski için yeni bir değer değil: sözlük boru hattı, anahtarı atlar, kimin anahtarını atlar Çeviri zaten İngilizceden farklı, bu yüzden diğer her dil eski dili tuttu. Bu makaleye bir bağlantı üzerinden soru. Kaynaklar menüsünde listelendi, Kaynaklar merkezi ve sitemp.
· kamo-internal
Başlatpad grupları barın kendi düşüş yüzeyine açık
Yönetici barı ve pined-app bantları, üst barın en iyi bar ile boyanır gradient ve sonra başka bir uygulamadan tamamen bir şeyle bir hover cevap verdi: bir Beyaz alettip kartı, grubun altında on iki pikselle yüzer ve - bir pined app's çip - bir MUI popover with gri captions and no seam to the thing it came out. Bunların dokuzu, her biri kendi başına geliyor ve yok ediyor. Yanlış palet, yanlış şekli, yanlış yerden geliyor. Şimdi ilk barın menülerine açıklar. Bu, içinde boyanır Organizasyonun markası, en üst kenarı, bandın noktadaki tam rengi alır Bundan ayrılır, doldurmalar onu bu kenara ve bir yüzey aksanı ve pointer sıraya kadar girişten yeniden boyutlar - bu yüzden bir grup satır olarak okur Startpad üzerinde oluşturulan bir kart olarak açılmak yerine. • NavTopMenuHost, sadece NavTop'un başlığı değil, bar benzeri bir element alır: “TopGap’ per host, çünkü bir grup barın değil, ve Hem panel hem de dolum grubu ile tanışmak zorunda. Oda bir panele sahip Büyümek aslında başladığı yerden ölçülecektir (-kmenu-max-height) nav'ın yüksekliğinden ziyade, bu bir sayfayı yarım yere indirme anlamına gelir. • NavTopMenuPanel “fo="note” kazanır: Aynı yüzey ve aynı hareket, Seçim yerine tetikleyici hakkında prose taşımak. Menü rolü iddia ediyor Ve odaklanmayın, bu yüzden yönetici barın açıklamaları açık kalıyor Ve hala tarif ettikleri bağlantıyı takip edin. • Bir pinned app's Chip, nav çizer (NavToolSectionsPanel, NavToolBarMenu'dan kaldırıldı, bu yüzden bir seçenek her yerde bir menü ile cevaplar Teklif edilir - nested gruplar, badges, filtre kutusu ve hepsi. • Her iki grup da navTopSeam.ts'tan mezunlarını okuyor. Gerçek bir kopyasının duraklar tam olarak ne sürükleniyor ve deniz sadece görünmezken Panel ve grup bunu kabul eder. Testler: yönetici bar bir fare, bir parmağı ve parmağı ile çalıştı klavye (bir yüzey, girişten girişe teslim, asla odaklanma), artı bir yüzey Kaynak muhafızı, ne grubun bir popover veya ikinci bir kopya için ulaşır gradient tekrar.
· kamo-marketing
White-label CRM ücretleri üzerinde web sitesi pazarlama video
Okuyuculara aynı ürün makarasını intro'dan sonra, resold-yuware bölümünden önce verin.
· kamo-shared-library
WebinarMember'i onaylamaz, bir organizasyon eklenmedi
Bir satır (organizasyon, takım üyesi) webinar notify member, tarafından yaratılan KamoInitializerService's WebinarMemberMigration ve zaten uygulandı. The The The The The The The The Takım üyesini terk etmek, çünkü her okuyucu insanı istiyor. Hiçbir yabancı anahtar, göçü eşleşen, bu yüzden ilkizerin ddl-auto update Asla bir tane eklemez.
· MediaService
Blind-copy, mevcut e-postalarda eklenmiş takım üyeleri
GET/PUT /api /webinar / notify-members (MANAGE SUPPORT) bir okuma ve değiştirme Organizasyonun eklenme listesi; her boşluk bir takım üyesi olmalıdır Bu organizasyon, çoğu 25'te. WebinarEmailNotifier, kendiliğini ekler Organizasyonun listesi, her mektupta bir hediye için kör kopyalar olarak - rezervasyon, Katılın, davet iptal et, oturum iptal et, hatırlatma – asla bir an önce Giree'nin mektubu, asla şimdiki kişinin kendi adresi, her bir kez ve Sadece insanlar hala yazılabilir.
· EmailService
Servis servis şablonundaki kör kopyalar gönder
SendTransactionalRequest is an optional bcc list, through sendToUser Ve SMTP zarfına teslim olun - platform-address retry dahil - bu yüzden kopyalanan bir kişi tam olarak adrese'nin aldığı mesajı alır. Körler kırılır, Adrese ve tekrarlara düşer ve listeyi 25'te kaplar. Mevcut çağrıcı yok Değişiklikler: bcc olmadan gönderi her zaman yaptığı yolu alır.
· InitializerService
Webinar notify member, ekip üyeleri mevcut e-postalarda kopyaladı
Bir satır başına (organizasyon, takım üyesi): ek notified liste üzerinde liste Scheduled Webinars settings sekmesi. MediaService kör-copies bu adreslere Her webinar e-posta, sahip olduğu organizasyon için bir hediye gönderdi Webinar tipi. Yeni bir masa, bu yüzden başka hizmetler okunmuyor; sıra yok Hiç kimsenin kopyalanmadığı anlamına gelir. 2026-09-13 üretimine uygulanabilir.
· kamo-internal
Şu anki e-postalarda kopyalanan bir yönetici seçin
Scheduled Webinars sekmesi, "Ekmen Notified" bölümünü başka bir bölüm elde ediyor Webinar türleri listesi. Takım üyeleri orada kör bir kopyasını aldı Adliye gönderilen her otomatik e-posta (yeni rezervasyon, katılımcı katıldı veya katıldı İptal edildi, oturum iptal edildi, hatırlatıcı). Webinars. Listeyi /api/webinar / notify-members, picks aracılığıyla okur ve değiştirir. Aynı multi-select rehberi olan insanlar Presenters sekmesini kullanır, Ve açıkça yanlış değiştirilmeyen bir ipucu ve kurtarılmış bir onay ile tasarruf eder. 403 bölümü gizler, başarısız bir yük boş bir yük boş bir boş bir yük yerine yeniden deneme sunuyor Liste, reddedilen bir kurtarma, sunucunun nedenini ve başka bir yöneticinin değiştiğini gösteriyor Webinar veyag-change konusu üzerinde yaşamak.
· kamo-shared-library
Her webinar rezervasyon mektubu için Canonical şablonlar
Yedi buluşma.webinar * şablonlar - hediye edilen / katıldı / katıldı Katılın iptali, katılımcının onayı ve iptali, iptali oturum-cancelled mektubu ve planlanan hatırlatma - kayıt CANONICAL KEYS, WebinarEmail onlarla dolduran bir değişken harita inşa ediyor: Okuyucunun bölgesinde zaman, kitapçının şimdiki için form cevapları, misafir bağlantı ve kişisel iptal linki katılımcılar için, konsol linki Şimdiki, ve göstermek için hiçbir şey olmadığı zaman çökmüş bloklar.
· kamo-marketing
Bir ziyaretçi kayıtlarını e-postalı bağlantıdan iptal edelim
/webinar/cancel/<token>, bir webinar onay e-postasının birisini gönderdiği yerdir Kim artık bunu yapamaz. Bu, halk aracılığıyla kayıt görünüyor Webinar API, webinar, hediye, tarih ve zaman gösterir ( ziyaretçinin) Kendi yerel ve zaman bölgesi, adı alan ile) ve uzunluğu ile ve iptal eder Doğru bir adımın arkasında. Bilinmeyen bir bağlantı, zaten iptal edilmiş bir kayıt Ve zaten her biri kendi devletlerini ve bir webinar'ı elinde tutan bir webinar ve API'nin reddedilmesi API'nin söylediği gibi gösterilir. Noindex/nofollow, and not in sitemap: yol dinamik, bu yüzden sitemap yürüyüşçü onu atlar ve bunun için hiçbir şey giriş yaratmaz. Kopyalama hayatları içinde Yeni webinarCancel adıspace.
· KlusterServices
DKIM imzalarında geri bildirim-ID
Gmail, geri bildirim başlığının yalnızca geri bildirim başlığı olduğunda geri bildirim döngüsüne yönelik bir kampanya mesajı tutar. Gönder domainin DKIM imzası tarafından ele alındı. Yerel.d/dkim.conf, rspamd'ın varsayılan imzasını tutar Başlıklar ve geri bildirim ekler.

Evreniniz sizi bekliyor.
Birkaç dakika içinde ücretsiz olarak başlatın. Hazır olduğunuzda ürünleri ekleyin - göç yok, yeni girişler yok.
Sonsuza kadar ücretsiz — kredi kartı gerekmiyor