Przejdź do treści
KAMOUniverse

Changelog

Co nowego.

Każde ulepszenie platformy, jak to wysyła.

  1. · kamo-internal

    "Wszystkie leady / konta / aplikacje" w kampanii, w dowolnym rozmiarze

    Każde pudełko na redaktorze kampanii ma teraz obok siebie pudełko "wszystko ...". Zaznaczone pudełko składa się w Panel na żywo dla wszystkich tego rodzaju, który może zobaczyć zarejestrowany członek, z tym, ile adresów Przychodzi do – liczony dla małej organizacji, wywnioskowanej na dużą („4,9 mld EUR 2 proc.) i Ukończenie w miejscu, ponieważ EmailService ogłasza lepszą liczbę. Pudełko, którego nie może użyć, mówi dlaczego. Nic w edytorze nie zawiera już całej listy: - Lista zapisana to sektu z serwerem (wyszukiwanie przez adres, filtr po statusie, zaznaczanie wierszy do podjęcia Wyłączone), a Zapisz wysyła zmiany strony jako plasterki z paskiem postępu - a nie na liście. - "Precenzja jako" to wyszukiwanie na nowych adresach tej strony, zapisanej listy i każdy z nich zaznaczony Odbiorcza, strona na raz, zamiast menu pierwszych pięćdziesięciu adresów załadowanych w przeglądarce. - Podsumowanie odbiorcy dodaje listę, co doda Zapisz i każda publiczność, i mówi wyraźnie, że Nikt nie jest wysyłany e-mail dwa razy, a opt-outy odchodzą, gdy wysyłają. - Kampania wysyłająca pokazuje, jak daleko zebrano każdą publiczność. Zainscenizowany box, podsumowanie pudełka z paskiem roboczym i plasterek skrzynek outbox redaktora już nie przepytują: Przejrzeli ponownie na ramkach postępu gniazda kampanii.

  2. · EmailService

    Kampania może trafić do każdego leadu, konta lub aplikacji, który może zobaczyć członek.

    "Wszystkie leady / konta / aplikacje" jest regułą, a nie listą. Jest on przechowywany w kampanii (ang. Blob masowy, kampaniaAudiencje – brak DDL), działa na dostępie każdego, kto go ustawił lub naciśnięty Wyślij, a zbierze się przez dyspozytora, zamiata tylko kilka tysięcy odbiorców przed tym, co Wychodzące gospodarze mogą wziąć, więc miliardy nigdy nie istnieje jako lista gdziekolwiek. - Reach: dokładnie to, co członek może odczytać zdemaskowany - reguła ekranów głównych (własne prowadzi; inne” Z Widok dane kontaktowe innych osób; nieprzypisany również nieprzypisanych prowadzi View lub free-for-all produkt), konta z kontami View, które zgodziły się na marketing, aplikacje z rurociągiem. - Czytanie: małe organizacje poprzez własny indeks przez id; duże przez hash-bucket sweep of Tabela (yb_hash_code na kluczu podstawowym, przypięty do podpowiedź) — jedyny zakres tych Stacje zahartowane hash mogą szukać. - Liczenie: dokładne dla małych organizacji, wywnioskowane dla dużych z losowych wiader haszyszowych z 95%, wyrafinowany na żywo przez NATS (email-auferencja) i buforowany na zasięg w Redis. - Zgromadzone wiersze są zwykłymi odbiorcami, opt-out skontrolowanymi, wstawionymi na CONFLICT DO NOTHING (nigdy nie Adres dwa razy) i oznaczony tak nietykając, że źródło odbiera tylko to, co inscenizowało. Kampania nie jest Ukończony, gdy jego publiczność jest nadal zgromadzona; anulowanie wszystkiego, co pozostało, zatrzymuje to. - Lista wysyłana jest zaznaczona (/odbiorcy/strona, poszukiwanie na indeksie adresu) i zmiana w plasterkach (/odbiorcy/aplikacja, /odbiorcy/usuń); usuwaj i duplikuj dalej go nie ładuje, a zwolnij Czasy są przydzielane stronie na raz. - Podgląd: /campaigns/audiencja/browary strony z publicznością z id lookup i time-boxed search. - Najemcy PHI otrzymują ścieżkę dostępu do siatki lead na każdy trop, który czyta publiczność.

  3. · EmailService

    Strona preferencji w każdym języku, w którym produkt mówi

    Strona za każdym linkiem do anzebry była tylko po angielsku. Teraz mówi Wszystkie 22 języki: UI: angielski, chiński, hindi, hiszpański, Francuski, arabski, bengalski, rosyjski, portugalski, indonezyjski, niemiecki, japoński, Swahili, Turecki, Tamilski, Wietnamski, Koreański, Włoski, Tajski, Polski, Ukraiński i rumuński. - Każde zdanie, które mówi, że strona mówi, żyje teraz w pakiecie wiadomości, - z angielskim jako źródłem i Obecni na wszystko, czego brakuje. Liczby przybierają odpowiednią formę mnogą Dla każdego języka i daty są napisane na własną drogę języka (UTC). - Język jest wybierany na żądanie: parametr lang wygrywa, a następnie Akceptacja-Ljguage przeglądarki (wartości jakościowe honorowane, pt-BR wracają do przeglądarki (p), a następnie po angielsku. Język, który wybiera czytelnik, pozostaje wybierany przez Każda forma i przekierowanie. Zestawy stron ?html lang>, Content-Language i Vary, i wymienia każdy język, nazwany sam w sobie, na dole jako gładki Linki. - Arabski układany jest od prawej do lewej: dir'"rtl", logiczny CSS, lustrzany Przełącznik, a własne słowa organizacji (nazwisko, temat, adres) przechowywane W ich własnym kierunku. Słowa te nigdy nie są tłumaczone. - Na szerokich ekranach strona używa teraz pełnej szerokości: dla kogo jest i dlaczego Z jednej strony, opcje obok niego w kolumnach, nuty i stopki Poniżej. Pod 720px jest to ta sama pojedyncza kolumna, co wcześniej. - Nic innego się nie zmienia: każda wartość wciąż ucieka (przetłumaczony tekst Również wokół niego), bez scenariusza, te same zablokowane nagłówki, GET nadal nigdy Zmienia wszystko, a link, który wymienia nikogo, wciąż nie dostaje tego samego Uczcona strona, teraz w języku czytelnika. Testy sprawdzają, czy każdy pakiet ma dokładnie angielskie klucze i Zamienniki i gałąź dla każdej mnogiej formy jego języka i pokrywają negocjacje językowe, prawe do lewicy, daty, ucieczki i Język przetrwał ratunek i jego przekierowanie.

  4. · kamo-internal

    Strony czepą się na orgach zmieniają się zdarzenia zamiast ładowania raz

    Każdy udany zapis przez forwardToApi publikuje teraz rt.org.org-orgId.. Na core NATS (dziura jest pierwszym segmentem ścieżki backend, pomijając bezpieczeństwo /). MediaService przekazuje go do /topic/rt/org/?orgId/'doma', i useOrgChanges Subskrypcja przez wspólne gniazdo, związuje pęknięcia i ponownie strzela po au. Powróć ponownie połącz się. Trasy losowe, billingowe i oauth-config, które nie przechodzą forwardToApi, publikuj się. Strony, które ładowały się raz po cichu, teraz czerpie po cichu, gdy ich domena się zmienia: nie Szkielet błyska, a nigdy nie nad niezagęszonym wejściem. - Konta: przypisanie i widok konta (przegląd, historia, leady, członkowie, Noty, zamówienia) - Notatki - Handel: zamówienia, umowy, rezerwacje, zamówienia, wnioski, oferty pracy, Żądania serwisowe, rejestracje, subskrypcje, pożyczki osobiste i raport starzenia się - Pożyczki, szczegóły pożyczki i oferty - Baza wiedzy dom i artykuł - Kariera, prawo i zgodność - Ustawienia, ustawienia konta, integracja, strona kategorii dokumentu, oraz Strony planu rynkowego i abonamentowego Kalendarz łączy istniejące zasilanie zmian. Osiągnięcia podążają za Temat odblokowania członka.

  5. · EmailService

    Ant-scribe przez e-mail jest honorowany, a nie upuszczony

    Każda wiadomość masowa i współdzielona, która oferowała domenę aneksualistów? W nagłówku List-Unsubscribe, ale nic nie czyta tej skrzynki pocztowej - dla najemcy To nie była nawet nasza domena - więc każdy opt-out wysłany w ten sposób został utracony. - The mailto teraz wymienia unsubscribe.hello.kamorm.com - dla każdego orgi, z tokenem odbiorcy W temacie: ;) Link https z jednym kliknięciem i List-Unsubscribe-Post pozostają bez zmian. - POST /api/internal/unscribe/mail bierze to, co tam dociera, jak doniesiono Po stronie serwera poczty. Znajduje żeton w plus-adresie, przedmiot (z Re:, w kapitale, lewym zakodowanymi adresami URL lub kodowanymi RFC 2047) lub a) Przesunięty link, rozwiązuje go dokładnie tak, jak robi to strona preferencji, oraz wypisuje się z tego adresu dla tego orgudu za pośrednictwem księgi opt-out (źródło "mailto", z Message-ID). Rząd kampanii wciąż czeka, aby zostać wysłanym, jest Pociągany, podobnie jak za pomocą linku jednym kliknięciem. Robienie tego dwa razy niczego nie zmienia. - Wiadomość bez symbolu, który wymienia kogoś, nic nie zmienia: nikt nie jest Niesubskrybowany przez domysł z adresu, które każdy może napisać. Nic nigdy nie zostanie odesłane. Dziennik utrzymuje wynik, org, domenę nadawcy I Message-ID, nigdy podmiot ani ciało. - Siedzi za InternalAuthFilter jak reszta /api/internal, odmawia zwraca się o ponad 64 KiB i próbuje co najwyżej pięciu tokenów kandydatów na wiadomość.

  6. · kamo-internal

    Zakładka Opt Out i aktualizacja chipów lead na żywo

    Obaj subskrybują - (Email Service i SecurityService publikują po każdej zaangażowanej zmianie; MediaService przekazuje), więc odbiorca wypisuje się, odbicie lub edycja kolegi pokazuje się natychmiast zamiast następnego obciążenia. Id org jest akcesorem do sznurka, nigdy zaokrągloną liczbą. Na wpół sprowadniona zmiana edytora jest utrzymywana, gdy adres porusza się pod nim, z notatką tak. Również upuszcza nakrętek szerokości, które karta miała na wybrane i dwa akapity.

  7. · EmailService

    Opt-out ekrany odświeżają na żywo, gdy ktoś zmienia listę

    Kąt mówi teraz OptOutChangePublisher po każdej zaangażowanej zmianie - odbiorcy na stronie preferencji, odbiciu, członku w Ustawieniach - i publikuje rt.org. Ramka nie ma adresu; ekran ponownie czyta to, co może zobaczyć jego widz.

  8. · SecurityService

    Zmiana opt-out ołowiu odświeża otwarte ekrany na żywo

    Ta kiełka mówi OptOutChangePublisher po zatłaczaniu zmian, która publikuje rt.org.org.org.email-opt-outs on core NATS (sprzepływ JetStream tej usługi jest czat.>), przekazywania przez MediaService. Brak adresu w kadrze.

  9. · kamo-shared-library

    ? kiełka opt-out mówi, kiedy lista organizacji się zmieniła

    Opcjonalny słuchacz, opowiedziany po zmianie, więc ekrany pokazujące listę mogą odświeżyć na żywo, zamiast ładować raz. Przenosi tylko organizację: która zrezygnowała, jest sama, więc ekran ponownie czyta to, co może zobaczyć jej widz. Istniejący konstruktorzy pozostają bez zmian.

  10. · KlusterServices

    Mail do unsubscribe-hello.kamocrmm.com dociera do EmailService

    Każda masowa i współdzielona wiadomość zawiera anzebry przez e-mail (List-Unsubscribe mailto), ale poczta na ten adres trafiła do postmastera i Nigdy nie grano w to. Teraz po poprawki dokładnie ten adres, i Niesubskrybuj + cokolwiek innego w tej samej domenie, do małej rury, która szpuluje Wiadomość i nowy wózek typu unsubscribe-mail wysyłają go na adres EmailService's /api/internal/unscribe/mail. EmailService znajduje żeton odbiorcy w Temat (lub plus-adres lub link przekierowany) i wypisuje się Dokładnie tak, jak robi to łącze jednym kliknięciem; wszystko bez ważnego tokena Przyjęte i upuszczone. - Każdy inny adres jest kierowany tak jak wcześniej: jeden dopasowanie linii regexp unsubscribe-hello.kamocrm.com znajduje się powyżej poczmistrzów, a Transport_maps nazywa tylko pseudo-domenie, do którego przepisuje. - Nic nigdy nie jest odbijane ani nie jest na nie odpowiedzi: rura zawsze odpowiada tylko "dostarczony" lub "spróbuj później" i zapamiętuje jego szpulę na 5000 wiadomości. - Wagon poprawkowo-doładowany-wydarzenia-wydatki wewnętrznej Tajny, opcjonalnie i nigdy nie wychodzi, więc nie może powstrzymać postfix przed Wystartować lub wyjąć kapsułę z Usługi.

  11. · AIService

    Agent sprzedaży honoruje listę e-mailową organizacji

    Zanim jakakolwiek e-mail dotknie bramki wychodzącej, teraz pyta o e-mail organizacji Opiniodawcza dotycząca adresu kontaktu. Adres jest tym, który kontaktuje się Kluczowe punkty: e-mail prowadzący dla lead:-uid>, członek (lub jego użytkownik) dla członków:-id> i tylko wtedy, gdy ten przewod lub członek należy do tego samego Organizacja. Adres na liście do-not-e-mail lub zatrzymany jest odrzucany jako SUPPRESSED_OPT_OUT z powodem, który rozpoczyna EMAIL_OPTED_OUT_ORG_LIST. To jest Sprawdzone bezpośrednio po rezygnacji z kontaktu i przed wszystkim Przypadkowo, a dotyczy to nawet kontaktu, którego agent nigdy nie dotknął. Jeśli Lista nie może być odczytana również pocztą elektroniczną (EMAIL_OPT_OUT_CHECK_FAILED): Agent jest niezamówiony, więc kontrola bez odpowiedzi nigdy nie może stać się Wyślij. Inne kanały pozostają bez zmian. Opcja nagrana przez rekordOptOut dla poczty e-mail lub dla każdego kanału, teraz Umieszczenie adresu na liście do-not-email organizacji (powód UNSUBSCRIBE, źródło ai-agent-opt-out, kontekst AI_CONTACT z kluczem kontaktowym), Tak więc każdy nadawca w organizacji i stronie głównej to zobacz. Ledger czyta i pisze działa w własnej transakcji i nigdy nie rzuca. The The (t. po wt. w pot w/, w pot w tym, pot w tym, pot w tym, pon., w pot wt., w pot w tym, w pot w tym, pon., w pot w, w Księga jest sama w sobie transakcyjna, a wyjątek wewnątrz dzwonienia Transakcja cofnie rząd odmowny lub własny kontakt Zdecyduj się. Nieudany pisanie jest rejestrowane, a własna rezygnacja z kontaktu nadal istnieje. Księga jest ogłoszona fasolą w stosunku do trzech repozytoriów. Jego sonda dla Nowe tabele opt-out są zbudowane z podstawowego DataSource, jedynego z nich Usługa ma. com.kamo.z.shared.email dołącza do skanowania repozytorium; fasola i Skan musi się zmienić razem.

  12. · MediaService

    Przekaźnik org zmieniaj zdarzenia na /topic/rt/org/?orgId/

    Pisarze publikują rt.org..orgId..-domain na core NATS po udanej zmianie; każda kapsuła przekazuje go do tematu orgi, więc otwarte ekrany fiksują się zamiast ładowania raz. SUBSCRIBE jest sprawdzany pod kątem orgi sesji, a klient SEND do prefiksu jest odrzucany.

  13. · kamo-marketing

    Ukryta strona dla odwiedzających poluje na zaciśnięte promowanie i sygnalizuje, że prowadzą do niej gości

    Polowanie: siedem zamków na gościa, wygenerowane z nasion i HUNT_SECRET, Zaszyfrowany z poprzednią odpowiedzią, ukrytą na stronie, która porusza każde UTC O północy, z bramami czasowymi i 72-godzinnym minimum. Bezpaństwowe tokeny podpisane; Nagroda jest kodem osobistym wydanym przez SecurityService ze wzoru Promocja, pochodząca z nasiona solvera, więc próba nigdy nie zajmuje sekundy slot. skrypty/check-hunt.ts gra 400 polowań do końca i nie udaje mu się zbudować Jeśli jakikolwiek etap nie może być rozwiązany z tego, co pokazuje rozwiązywacz. Sposób, w jaki się w to wejdzie, dla kogoś, kto nigdy o tym nie słyszał: trzy sygnały. Słowo W kopii strony docelowej usterki; znalezienie jej nazywa następną stronę (Cena Najpierw) i linki tam, link do niego świeci, pigułka utrzymuje liczenie Na stronach, a trzeci otwiera polowanie. Intencja wyjścia pulpitu raz na per Sesja i "zacząć za darmo" na każdym kroku. Każdy krok jest wydarzeniem na polowaniu analitycznym. Wszystko się nie zamyka: brak szablonu, brak tajemnic lub nie pozostawionych kodów oznacza brak Linia stóp, bez sygnałów i /api/hunt odpowiedzi CLOSED. /hunt stwierdza: Terminy dokładnie takie, jak definiuje je szablon.

  14. · SecurityService

    Wysywanie osobistych kodów jednorazowego użytku z promocji szablonu

    Strona kamocrm.com szuka rąk każdego rozwiązującego kodu własnego, i tylko Pierwni N solverzy kiedykolwiek je dostają. Podzielony kod nie mógł tego zrobić: Najpierw solver, aby opublikować go, aby przekazać zniżkę wszystkim. - PromotionCodeIssuer: Promocja INACTIVE jest szablonem; jest to szablon maxRedemptions to liczba kodów osobistych, które mogą być wydawane. Sloty są zabierane przez warunkowe UPDATE, więc dwie repliki nie mogą nadmiernie. Osoba dzwoniająca może Nazwij kod i ponownie prosząc o wydany kod zwraca go bez Zajmowanie drugiego slotu. - - na klastrze Wewnętrzny sekret. - Promocje publiczne paszy zrzucają kody jednorazowego użytku, więc osobisty kod Nigdy nie można go wymienić ani reklamować w bohaterze strony głównej.

  15. · EmailService

    Strona o rzeczywistych preferencjach za każdym linkiem do subskrypcji

    Link do rezygnacji z subskrypcji otworzył nagi kartę potwierdzającą lub odejścia. Kogoś, kto Chciał tylko mniej e-maili nie miało sposobu, aby to powiedzieć, i nic nie mówi im, dlaczego Byli wysyłani pocztą, co by przypływało, albo że ich wybór Był przechowywany w rejestrze. Link otwiera teraz stronę preferencji dla tego adresu i nadawcy. Odpisy z wszystkiego wszystko przychodzą na pierwszym miejscu i jest jedną prasą. Po tym, Czytelnik może wyłączyć jeden rodzaj poczty (gdy jest więcej niż jeden wybrać pomiędzy, a jeden jest już wyłączony) lub zatrzymać wszystko za 30, 60 lub 90 dni. Po odsubskrypcji mogą ponownie subskrybować jednym przyciskiem, Albo powiedz nadawcy, dlaczego odeszli. Strona mówi, dlaczego przyszedł e-mail, co Nadal będą otrzymywać i każda zmiana jest rejestrowana. Każda zmiana przechodzi przez ednię opt-out wraz z prośbą Wywodzi się, więc historia pokazuje, że wybór był jego własnością. Otwieranie strony rejestruje widok i nic nie zmienia. Żądania z jednym kliknięciem Od klientów poczty (RFC 8058) wciąż wypisuje się ze wszystkiego, zawsze Odpowiedz 200, a nadal wyciągnij kolejkę kampanii z jej wysyłania. Link Nazwiska nikt nie dostaje tej samej neutralnej strony na każdej trasie i nigdy Dociera do księgi. Strona jest prostymi formularzami HTML bez skryptu. Jest narysowany w nadawcy Kolor marki, regulowany, aż osiągnie kontrast WCAG zarówno w świetle, jak i lekkim i Ciemne tematy i działa od 320px szeroko. Każda odpowiedź niesie ze sobą ścisły polityka bezpieczeństwa treści, brak odsyłacza (ken znajduje się w adresie URL), Brak-sklep, noindex i ban do ramek. Rendering istnień w tłumieniu / stronie: zapis widoku, czysty renderer, który Testy i podgląda połączenia bezpośrednio, a także usługa, która rozwiązuje tokeny i - Rozmowy z kiełgardą. Kontroler tylko trasy i ustawia nagłówki.

  16. · kamo-internal

    E-mail opt-out chip i panel na stronie głównej

    Obok adresu e-mail prowadzącego znajduje się teraz chip mówiący, czy dana osoba Można wysłać e-maile: e-maile dozwolone, wyłączone ze wszystkich wiadomości e-mail, wstrzymane do daty, Niektóre e-maile lub brak adresu e-mail. Otwiera panel, który wyjaśnia Stan obecny w prostych słowach (który go zmienił, kiedy i dlaczego), z przełącznikami Każdy rodzaj e-maila, przełącznik "opt ze wszystkich wiadomości e-mail", 30-60/90-dniowa pauza lub Zakończenie pierwszej i najnowszej historii z datami prośby za przełącznikiem. Ilekroć zmiana pozwalałaby e-mailowi dotrzeć do osoby, notatka staje się Wymagane, mówi dlaczego, a oszczędzaj, czeka na to. Członek, który może tego nie zmienić, jest Opowiadam, dlaczego i widzi wszystko tylko w porządku; zanim tabele historii istnieją Panel mówi tak spokojnie, zamiast zawieść. Szybka akcja e-mailowa pyta teraz najpierw, gdy dana osoba zrezygnowała ze wszystkich wiadomości e-mail Albo wstrzymał go i niech członek i tak napisze odpowiedź jeden do jednego. Dodaje trasę proxy dla - przechodząc Pole serwera i kod, dzięki czemu panel może umieścić błąd obok właściwego Wejście.

  17. · SecurityService

    Zobacz i zmień e-mail rezygnację z czołówki

    Członek pracujący jako prowadzący może teraz sprawdzić, czy ta osoba może zostać wysłana pocztą elektroniczną, Zmieniaj go, bez listy ustawień rezygnacji org-wide. GET - odpowiedzi ze stanem adresu w sprawie Likwidacja opt-out organizacji, jej dziesięć ostatnich zmian i tematy Adres może się zatrzymać. Kto może ją odczytać, podąża za samym prowadzeniem (401/404/403 jako do otwarcia lead, free-for-all lead w zestawie). Osoba dzwoniący, którego widok na Dane kontaktowe prowadzące'a są zamaskowane, a adres jest zamaskowany w ten sam sposób i nie Informacje o IP, przeglądarce lub sesji na temat wierszy historii. PUT na tej samej ścieżce zmienia go. Jest to dozwolone dokładnie podczas edycji tego Dane kontaktowe leada są dozwolone (przydzielacz lub EDIT_LEAD_CONTACT_INFO_OTHERS plus VIEW_UNASSIGNED_LEADS dla nieprzypisanego leada) i nigdy, gdy adres Jest zamaskowany. Zmiana jest rejestrowana jako MANUAL z "lead:'id>", z członkiem, Adresy i przeglądarka żądania oraz hasha sesji. Umożliwienie poczty e-mail ponownie potrzebuje notatka, którą kiesza egzekuuje (400 z „komentarnikiem”); Tabele historii istnieją, odmówiono zmiany z 503 HISTORY_UNAVAILABLE. Każdy z nas Zmiana pozostawia również rząd na własnej karcie Historia czołówki. Karta główna jest deklarowana tutaj z własną sondą schematu, podobnie jak EmailService.

  18. · EmailService

    Adminimencja org może zobaczyć i zmienić całą listę rezygnacji

    Ustawienia -> E-mail -> Opt Out ma teraz swoje API w formacie /api/email/opt-outs, z tyłu MANAGE_EMAIL_OPT_OUTS (obejścia bosobowe): podsumowanie z ostatnich 30 dni, lista Filtrowany według stanu, rozumu i adresu, jeden adres z pełną historią i Wszędzie indziej pojawia się w organizacji, działalności o szerokości org, CSV Eksport, zmiany i notatki dokonane za pośrednictwem księgi opt-out. Każda zmiana jest Nagrane przeciwko członkowi, adres klienta przekazał pełnomocnik, oraz Haha z ich sesji. Idy są wysyłane w miarę ciągów i czasów niż ISO-8601, Aplikacja internetowa się spodziewa. Dopóki nie będzie tabel historii, lista, podsumowanie, adres i eksport nadal Praca z listy do-not-e-e-e tylko, a zmiana odpowiada 503 HISTORIA_UNAWAILOWANY zamiast być w połowie wykonany. Sonda schematu buduje teraz swoje zapytanie nad podstawową bazą danych. To było to, że to było biorąc pod uwagę jedyną fastę JdbcTemplate w tej usłudze, MySQL serwera pocztowego, MySQL, Tak więc nigdy nie widział tabel opt-out i zmiana każdego członka miałaby Został odrzucony.

  19. · kamo-internal

    Ustawienia -> E-mail -> Opt Out, lista do-not-email organizacji

    Każdy, kto prosił, by nie być wysyłanym e-mailem w jednym miejscu. Tuszhead mówi, ile jest poza zasięgiem e-mail i dlaczego (niesubskrybowane, odbijane, oznaczone jako spam, poprosiło nas o zatrzymanie), ile zatrzymało się tylko Niektóre rodzaje lub zatrzymane, i jak lista przesunęła się przez trzydzieści dni. Lista jest do przeszukiwania i Przefiltrowalny; adres otwiera się obok: To, co otrzymują jeden wiersz za wszystkie e-maile, jeden za rodzaj poczty i pauzę, zaleconą jako - Projekt. Pozwalanie, aby poczta dotarła do kogoś ponownie, potrzebuje notatki mówiącej, kto pytał i Kiedy, ponieważ ta notatka jest zapisem ich zgody. Znany jako lead, kontakt, wysyłanie kampanii, aplikacja, alerty o pracę i sztuczna inteligencja Asystent opt-out, który dzieli adres O historii każda zmiana jako linia czasu: co się poruszyło (przed/po), kto to zrobił i poprzez co, notatka i żądanie, z której pochodzi (adres sieciowy, Przekierowywanie łańcucha, przeglądarka, język) Plus kanał aktywności o szerokości org, dodając adres ręcznie i eksport CSV. Gated by MANAGE_EMAIL_OPT_OUTS (dziecko MANAGE_EMAIL_SETTINGS), lustrzane w RoleRightType.ts i PrawaHierarchy.ts; zakładka, wpis menu i karta ustawień wyświetlają się tylko z nią.

  20. · kamo-internal

    Kwadratowe, łaszane guziki i kciuk z narożnym 2px na każdym pasku przewijania

    Cztery przyciski baru (skok do rozpoczęcia, krok do tyłu, krok do przodu, skok do końca) Są teraz kwadraty 20px z twardymi narożnikami, a kciuk utrzymuje tylko promień 2px. Obaj niosą jednopikselowy skos - światło wzdłuż góry i lewą, ciemną wzdłuż dno i prawy - w półprzezroczystych białych i czarnych, więc ten sam ukośny siedzi Na tablicy strony, odcień marki, ciemna paleta terminala. Pojedyncza frakcja skóry "rounding" staje się dwoma pikselami radii, kciukiemRadiusem i PrzyciskRadius, ponieważ "kilka pikseli" jest absolutna. Klucz kwadratowy jest Geometria zamiast skóry: trzyma się na krótkim barze (10x10 na pasku 72x) i Na skórze zręcznościowej, której wygląd jest niezmieniony.

  21. · EmailService

    Każde sprawdzenie tłumienia i odbicia przechodzi przez kieszę opt-out

    SuppressionService teraz pyta EmailOptOutLedger, więc sprawdź lista do-not-email, pauzsy Zarówno tematy, jak i odbicie, a odbicie ląduje w tej samej historii, co dezapia się. Dzwoniczy nazywają Czysz poczta, którą zamierzają wysłać: kampanie (materializuj, przywrócić, późna brama) zapytaj o MARKETING_CAMPAIGNS, artykuł akcji o SHARED_ARTICLES. Odgłosy niosą ze sobą odpowiedź serwera i Kampania w rzędzie historii. OptOutSchemaProbe informuje, czy KamoInitializerService stworzył dwa nowe Stoły jeszcze; dopóki nie ma, wysyłanie honoruje listę samodzielnie, zamiast niepowodzenie na brakującym stole.

  22. · kamo-shared-library

    Jedna kiewnika opt-out, tematy, przerwy i historia każdej zmiany

    Lista do-not-email może być napisana, ale nie czytana, zmieniana lub wyjaśniana. To dodaje To miejsce, z którego jest czytany i pisany, dla każdej służby: email_optout_topics adres, który zatrzymał jeden rodzaj poczty lub wstrzymał wszystko e-mail_optout_events wstawka tylko historia: kto (odbiorca, członek, system), skąd (klient IP, cały łańcuch X-For, agent użytkownika, język, gospodarz, referent, hash sesji), dlaczego (powód, źródło, uwaga, opinie), Przez co (kampania, trop) i państwo przed i po Email_supampions zachowuje swoje znaczenie, więc każdy nadawca, który już honoruje, nadal to robi. E-mailOptOutLedger odpowiada "może to zostać wysłany" ze wszystkich trzech i pisze jeden wiersz historii na Część państwa faktycznie zmieniła się. Członek zezwalający na pocztę musi ponownie powiedzieć dlaczego; to Notatka jest zapisem zgody. Dopóki nie zaistnieją nowe tabele, gładka wraca do listy Samotne i odrzuca zmiany, których nie może nagrywać, a nie porażek wysyłanych. Zwykła klasa, a nie usługa: każda usługa skanuje com.kamo i bez wiadomości e-mail Repozytoria nie zaczną go konstruować. Każda z usług deklaruje ją z beanem. MANAGE_EMAIL_OPT_OUTS (320), org right for Ustawienia -> E-mail -> Opt Out, dziecko MANAGE_EMAIL_SETTINGS.

  23. · kamo-internal

    Wychodzące hosty poczty e-mail, wysyłają okna, rozgrzewkę na gospodarza i inscenizowaną skrzynkę

    - Ustawienia - Platforma - Konfiguracja zyskuje kartę Outbound E-Mail Hosts, za platformą MANAGE_OUTBOUND_EMAIL_HOSTS: hosty dzielone z każdą organizacją i tymi, które zostały zachowane dla organizacji platformy, z każdym ustawieniem połączenia, dostępnością, kontrolą połączenia, Test wysyła, a rozgrzewka każdego gospodarza. - Ustawienia - E-mail "Mały e-mail Sender jest przebudowywany na masie dodacza GET/przegląd: obrót Hosty organizacji i platformy (przełączalne na organizację), runda Widok, nadawca, edytor okien (dniuchytygodniowe, kilka przedziałów czasowych, zakresy nocne, własne Strefa czasowa lub organizacja) oraz raport rozgrzewki w prostym języku na hosta. Rozgrzewka może być Nie można go już wyłączyć. - /marketing/email/box listy każdej wystawnej wiadomości e-mail – skomponowanej tylko wtedy, gdy host może go wziąć – i Anuluje pojedyncze e-maile, wybór lub wszystko, co pozostało, z cofniętym. Przestrzeń pracy, czyli Szerszyk, a edytor kampanii łączy się z nim i czyta nową pojemność per-host. - Wspólny edytor hostów z przedpokojem na żywo (rozwiązane adresy, duplikat i prywatny adres Odmowa), gospodarze wychodzący i klienci Outbox API oraz status odbiorcy z ANULOWANY.

  24. · EmailService

    Kilku gospodarzy wychodzących na org, wysłanych okrągłych strrobin, każdy ogrzewany sam, wewnątrz okna wysyłania

    Poczta kampanii organizacji pozostawia teraz przez dowolną liczbę gospodarzy wychodzących, jedną wiadomość na Czas w rotacji, zamiast jednego dostawcy mas. - Gospodarze: firma posiadająca organizację (outboundHosts w masowym dostawcy blob) i platformy (platformOutboundHosts w bloku platformy), SHARED z każdą organizacją lub PLATFORM_ONLY. Każde ustawienie SMTP jest wyraźne: bezpieczeństwo, mechanizm SASL, weryfikacja TLS i Protokoły, nazwa HELO, nadawca koperty, limity czasowe, limity godzinowe / codzienne, DSN, 8BITMIME, SOCKS. HostSessionFactory buduje od nich sesję; EmailSmtpService.sendVia wysyła przez nią. - Ten sam serwer nigdy nie jest dodawany dwa razy (ta sama nazwa lub jakikolwiek wspólny adres, niezależnie od portu lub Logowanie) i host organizacji musi być serwerem publicznym: prywatnym i wgrafracie i nazwy Adresy są odrzucane na ratunku i ponownie przed każdym połączeniem. - Rozgrzewka jest na jednego gospodarza i zawsze. WarmupService działa na WarmupHle; host platformy ma jeden Rozgrzewka dzielona przez każdą organizację korzystającą z niej. Nowe biegi zaczynają się na lokalnym początku dnia. - WarmupReleaser jest jedynym nadawcą: okrągłym żłobkiem dla gospodarzy każdej organizacji, pominięciem gospodarza Czekając na swoje gniazdo, na czapce, hamowane, na własnym krańcu lub wycofując się po tym, jak nie udało się Połącz się. Połączenie, TLS lub awaria logowania nie liczy już próby przeciwko odbiorcy. - Wyślij okno na organizację (dni, jeden lub więcej zakresów, własną strefę lub orgi). WarmupPacer na Rozkłada się każdego dnia na otwartą tylko przez czas otwarcia okna. - Zainscenizowana skrzynka outbox: /api/email/campaigns/outbox listy kolejkowanych odbiorców i anuluje lub przywraca je. Anulowany odbiorca jest SUPPRESSED z notatką (bez statusu DDL) i odczytuje jako ANATOWANE. - Punkty końcowe: - platformy hosts at Za MANAGE_OUTBOUND_EMAIL_HOSTS. Ten jeden-host pisze Odpowiedź 410. - OutboundBackfill przekaźnik k3m1 jako gospodarz PLATFORM_ONLY i migruje blobów jednogospodarzowych. Żadne zmiany schematu.

  25. · KlusterServices

    Postfix-bulk akceptuje każdego nadawcę z EmailService [skip ci]

    Przekaźnik jest teraz platformą wychodzącą na platformie, którą może przejść każda poczta kampanijna każdej organizacji Jak wszystko, co z tej organizacji wysyła jak. Tylko nieważny nadawca jest nadal odrzucany, Z 4xx. Relability pozostaje niezmieniony: mysze i NetworkPolicy ograniczają je do EmailService kapsuły. Stosowany bezpośrednio (kubectl aplikuje -f . .

  26. · kamo-shared-library

    MANAGE_OUTBOUND_EMAIL_HOSTS, wychodzące hosty poczty elektronicznej konsoli platformy

    Platforma odpowiednia dla wychodzących hostów poczty e-mail pozostawia przez: hosty udostępnione z każdą organizacją i tymi, które są przechowywane dla organizacji platformy, ich poświadczenia, Dostępność i rozgrzewka. Wymuszony przez EmailService's PlatformOutboundHostsController przez PlatformRightsResolver. Zaatakowane, więc żadne istniejące prawo nie jest numerowane.

  27. · kamo-internal

    Usuń, przefiltruj i wyłącz wiersze NoReply Outbound

    Strona audytu zyskuje kolumnę podsystemu i filtr, wybór checkboxa Z "wybierz wszystko" i "wybierz wszystkie pasujące", i usuwa dla jednego wiersza, Wybrane wiersze, wszystko, co pasuje do filtrów, lub wszystko, każdy Za potwierdzeniem nazwy tabeli wiersze są usuwane. "Nagrywanie i retencja" wyłącza rejestrowanie każdego podsystemu na lub wyłączone I określa, jak długie rzędy są trzymane. Żądanie, które każde usunie, staje się i jak jest model wyboru siatki Czytaj, żyj w swoich własnych testach.

  28. · EmailService

    kieszerka NoReply może być filtrowana przez podsystem, przycinana i opowiedziana, co rejestrować

    Każdy wiersz nazywa teraz podsystem, który go wysłał, a dla przesłanego szablonu, Klucz szablonu. EmailTemplateService i nadawca kampanii otwierają Zakres NoReplyOutboundSource wokół ich SMTP send; cokolwiek innego jest UNATTRIBUTED. NoReplySubsystem mapuje kanoniczne klucze szablonów do Podsystemy i test nie powiedzie się, jeśli szablon kanoniczny nie odwrócono na żadne. Usuwa się do samego stołu przez NoReplyOutboundLedger: jeden rząd, Do 1000 wybranych wierszy, każdy wiersz pasujący do filtrów listy lub Cała księga (TRUNKATE), o którą należy prosić z potwierdzeniem wszystkiego. Masowe usuwanie działa w kawałkach 500. NoReplyOutboundSUttings przechowuje przełącznik rejestrujący na podsystem i Zatrzymanie (domyślnie 30 dni, 0 utrzymuje rzędy do czasu skażenia), buczakowana 15 sekund na kapsułę. NoReplyOutboundRestentionSweep czyści co godzinę na jednym Pod pod. Wszystkie nowe punkty końcowe są tylko dla Boga, jak lista.

  29. · InitializerService

    Unikalny (kampania, adres) indeks, dla świeżego środowiska

    EmailService używany do tworzenia - na każdym z nich Start; DDL na tym klastrze należy tutaj. Idempotent, automatycznie kompetentny (YugabyteDB buduje indeksy online), a duplikaty są liczone i rejestrowane, Nigdy nie usunięto - skontaktowany wiersz jest stałym rekordem kampanii Adres. EmailService sprawdza teraz tylko indeks według tej nazwy.

  30. · kamo-internal

    Redaktor kampanii pisze ostrze do krawędzi, scalić tokeny we własnej kolumnie

    Temat znajduje się pod tytułem kampanii, a publiczność obok chipa statusu, więc komponuj To sam korpus e-mail, wypełniający środek strony, z tokenami scalania w kolumnie na na sobie Właściwa. Nic samego się nie zapisuje, więc strona teraz zaznacza edytowanie serwera, którego serwer nie widział i pyta Przed wyjazdem odrzuci je; TemplateInlineEditor raportuje, że własne ciało członka rozdziela Od normalizacji czasu obciążenia Quill, aby znak nie został podniesiony przez otwarcie kampanii.

Twój wszechświat czeka.

Rozpocznij bezpłatnie w kilka minut.Dodaj produkty, kiedy tylko będziesz gotowy — bez migracji, bez nowych logowań.

Bezpłatne na zawsze — nie wymaga karty kredytowej