Jurnal de schimbări
Ce e nou.
Fiecare îmbunătățire a platformei, pe măsură ce se livrează.
· EmailService
O zi de încălzire nimic nu a fost trimis pe nu contează
O zi de încălzire era cea de-a N-a 24-a oră de la început. Ceva a mers, asa ca de cotitură de încălzire-up cu zile înainte de prima campanie Şi-a petrecut în linişte zilele cu volum redus. O zi care se termină fără încercări este Acum repetat: ea și în fiecare zi mai târziu aluneca înainte de toate zilele care nu au fost utilizate, orice număr dintr-o dată, în timp ce zilele folosite le păstrează Ferestre şi istorie. Finalizarea se mișcă cu ei, și starea de încălzire-up raportează zile inactive. Cursa este stabilit înainte de calea de trimitere contează nimic, astfel încât un trimis este nu au socotit niciodată o zi care urmează să fie repetată; şi când Contoarele nu pot fi citite Run este lăsată așa cum stă mai degrabă decât de închidere o zi la zero.
· kamo-internal
O campanie pe care sponsorul nu o poate trimite spune de ce și cum să o repare
EmailService pauza acum o campanie în loc de lipsa beneficiarilor săi unul de unul când nu-l poate trimite: de la este de pe releul platformei domeniu, sau nu există nici un expeditor în vrac la toate. Refuză trimiterea, programul şi relua în timp ce cauza stă în picioare, și raportează pe campanie ca Trimite-l pe Blocker. - editorul și vizualizarea progres arată un banner cu cauza, propria propoziție a serverului și fixa ca doi pași: schimbați De la (sau utilizaţi furnizorul implicit) şi reluaţi sau deschideţi expeditorul în vrac setările şi reluarea. Reluați rămâne dezactivat în timp ce proiectul încă are cauza - Reluați acum salvează proiectul mai întâi, astfel încât o corectat De la ajunge la suport în loc de campania fiind reluat ca stocate și refuzate Din nou. - o trimitere, un program sau un CV refuzat sunt prezentate în loc cu Mesajul serverului, nu numai într-un toast, iar campania este recitită Deci starea sa şi blocantul sunt actuale - reţeaua de campanii marchează o campanie blocată în afară de statutul său, cu motivul pentru care plutesc - erori din campania API prefera mesajul uman peste un gol codul mașinii, și să poarte starea și codul
· kamo-internal
Încălzirea spune că zilele nestingherite nu contează şi atrage datele care aluneca
O zi de încălzire în care nimic nu mai este trimis nu mai contează: toboganele de rulare înainte și ziua se repetă atunci când trimite CV-uri, care face trecerea Încălzirea înainte de prima campanie în siguranţă. Panoul spune acum, lângă comutatorul și din nou în notele inactive și nepornite. Când zilele au fost trecute, inelul de zi spune câte, cu Orarul a trecut mai departe de atât de mulţi. Fiecare tigla program arata data sa, iar vârful de unelte al graficului îl numeşte, citit din fiecare zi aşa cum a făcut-o backend-ul. Acum, mai degrabă decât conta pe de la primul, astfel încât datele alunecate sunt cele trase. Pe /marketing/email, o încălzire inactivă cu nimic de așteptare citește ca "pe, incepe cu urmatoarea ta campanie "mai degraba decat pretinde livrare este fiind ritmat.
· EmailService
E-mail campanie releul platforma ar refuza eșuează la o dată în loc de a fi rejudecată
Releul trimite doar ca domeniu propriu și răspunde la orice altceva cu un 451, astfel încât o campanie a cărui De la este pe un alt domeniu folosit pentru a rejudeca fiecare destinatar de trei ori, fiecare retry o încercare de încălzire-up, înainte ca cineva a învățat De la a fost greșit. Când furnizorul de org este gazda și portul releului iar domeniul From nu este domeniul de trimitere al releului, ci destinatarul. marcat acum failED cu fix în eroarea sa: nici SMTP, nici o retry, nu suprimare, și nimic nu conta împotriva warm-up sau fanta sa.
· EmailService
Încălzirea noii gazde deţine un mesaj de campanie al unei orgi şi îl eliberează în ritmul de încălzire
În timp ce încălzirea orga este pe, dispecerul lasă campaniile sale singur si un eliberator le trimite un mesaj la un moment dat, cel mai devreme datorate primul de-a lungul campaniilor orgii, niciodată nu a trecut de propriul capac pe oră al campaniei şi Nu a trecut niciodată de şapca zilei. Se execută în fiecare secundă sub leasing propriu dispecerului, astfel încât cele două nu pot trimite același destinatar de la diferite capsule. Setările, zilele stabilite și frâna de siguranță trăiesc în vrac a furnizorului Blob criptat; contoare live în Redis și sunt reconstruite din rândurile de destinatar dacă a pierdut. Obțineți, puneți și resetați criteriile de evaluare la /api/email/bulk-supporter/warmup raportează statul, programul, coada şi sănătatea. Ambele căi trimit acum printr-o metodă per-recipientă, care pretinde Rândul SELL înainte de releu vede. Contoarele de campanie sunt scrise fara a salva campania, interrupt-trimite matura inclus; salvarea Obişnuia să pună o campanie la jumătatea meciului înapoi la Sending.
· kamo-internal
Rânduri primitive transporta contactat, și deja trimise rânduri păstra marca lor lângă statutul
Destinatarul Serviciului Email DTO raportează acum dacă campania a avut deja prin e-mail fiecare adresă. Hărțuitorul o poartă, împreună cu Ultima Error, și completează campania id DTO lasă afară. Un rând deja contactat nu este niciodată ținut de încălzire-up și niciodată nu a trimis un e-mail din nou, astfel încât grila de progres nu-i mai dă nota de încălzire, și atunci când Ultimul rezultat este orice dar trimis cipul de stare păstrează un mic "Deja trimis" marca. În etapa de primire, un rând marcat "Deja trimis" De asemenea, arată cum s-a terminat cu trimiterea când nu a ieşit pur şi simplu.
· kamo-internal
Campania de pe teren spune că atunci când releul va refuza
Propria campanie Din domeniu, implicit de la furnizorul de vrach, avertizează atunci când adresa este în afara domeniului furnizorului, ca poștă care poate ateriza în Spam. Pe releul platformei care nu este un risc, ci o certitudine: EmailService esueaza fiecare destinatar al unei campanii a caror domeniu nu este domeniul de trimitere al releului ("Releul în vrac trimite doar ca @domeniu"). Deci, atunci când furnizorul de vrac transporta un releu platformă, un off-domeniu este o eroare: câmpul este marcat, o alertă spune ce se va întâmpla și oferă furnizorul implicit atunci când este pe domeniul releului, și înainte de zbor blocuri de trimitere până când este fixat. Organizații pe cont propriu SMTP Furnizorul încă mai primeşte un avertisment spam mai moale.
· EmailService
Fiecare mesaj de campanie își numește rândul de destinatar în X-Kamo-Ref
Releul în vrac înregistrează antetul de la coada sa id și benzi ea înainte livrare, astfel încât rezultatele de livrare pot fi egalate cu rândul exact destinatar. Testele compozitorului pun la îndoială şi restul mesajului campaniei. cu: de la adresa și numele campaniei, fiecare care se încadrează înapoi la vrac furnizorul; un nume de afișare care nu poate porni un antet propriu; dezaboneaza cutia postala de pe domeniul din care este de fapt corespondenta; si a Răspunde-La numai atunci când campania stabilește unul.
· EmailService
Rapoartele de livrare ale releului sar, blocheaza si numara posta de campanie dupa predare
POST *************** ia rapoartele releului platformei a ceea ce a devenit din fiecare mesaj, egal cu rândul destinatar de Antet X-Kamo-Ref sau, în lipsa acestuia, ultimul rând trimis la adresa din ultimele şapte zile. Un salt greu (5.1.x, 5.2.1, 5.4.4) marchează rândul BOUNCED și suprimă adresa. Un bloc (5.7.x) îl marchează eşuat, dar păstrează adresa, deoarece refuzul a fost al expeditorului, nu cutia poştală. Orice altceva permanent este un eșec simplu. Motivul unei amânări este păstrat pe rând până la livrare. Numai rândurile încă SENT sunt mutate, iar încălzirea contează fiecare raport o dată, împotriva zilei în care mesajul a fost trimis, astfel încât reporterul poate trimite un lot În siguranţă.
· EmailService
Programul de încălzire, pacing și normele de sănătate
Un nou IP de trimitere este ramped peste 14 zile de încălzire. Zilele 1-7 urmează program fix pe ritm (conservativ, echilibrat, agresiv); din ziua 8 Fiecare zi creşte cu procentul ritmului doar dacă ziua dinainte era sănătoasă. prin rata sa de salt, de blocare și de amânare, și altfel deține. Fiecare zi este a decis o dată și a păstrat cu motivul. Mesajele sunt ritmate de ceea ce a mai rămas din zi, cu meschin-unu nervos și pauza ocazională, niciodată mai repede de patru ori viteza constantă și Niciodată atât de târziu încât restul bugetului nu se mai potriveşte. ă frâna de siguranță se oprește într-o zi în care receptoarele blochează sau sar.
· kamo-internal
Banner de pacing cald pe /marketing/email
În timp ce noua gazdă se încălzește, campaniile se desfășoară mult mai lent decât spun setările lor, şi nimic din campanie nu spune de ce. ă Campaniile de lucru spaţiu de lucru şi o viziune a progresului campaniei poartă acum o slabă banner cu ziua, astăzi trimite împotriva capacului, următoarea trimite și ce este de așteptare, conectarea la setările de încălzire-up, și un destinatar coadă explică faptul că este ţinută. Bannerul este ascuns în timp ce încălzirea este oprit sau complet, și ori de câte ori Încălzirea nu poate fi citită.
· kamo-internal
Client în vrac cu erori de teren și criteriile de încălzire
Clientul știa un statut furnizor numit PELLING că niciodată backend trimite, astfel încât un expeditor care a fost salvat dar nu încă testate a căzut prin "Nu Configurat." Acesta citește acum PELLING SETTUP (încă acceptând PELLING) și normalizează întregul stat într-un singur loc: rezumatul conexiunii, atunci când parola ultima schimbat, releu platforma și dacă membrul poate Ocupă-te de asta. Eșecurile vin înapoi ca BulkEmailApiError, care transportă statutul HTTP și, pentru a 400, câmpul de formă numit backend, astfel încât formularul poate pune mesajul pe acest câmp și un 403 pot fi afișate ca un stat de acces mai degrabă decât un eroare. 204 goale sunt tolerate, și o salvare sau de încălzire-up scrie că răspunsurile cu o confirmare clară este urmată de un OT în loc de a fi adoptate ca stat, care este ceea ce a golit forma după fiecare salvare. Adaugă apelurile de încălzire: GET și pus / vrac-furnizor/căldură și POST /bulk-ofert/căldură/resetare.
· kamo-internal
Regulă de conectare, presetări și model de vizualizare de încălzire în spatele expeditorului în vrac
Piesele pure pe care sunt construite noile ecrane, fiecare cu teste: - regula de legătură port-primul backend, oglindit astfel încât forma poate spune cum se va conecta KamoCRM înainte ca orice să fie salvat: 465 este implicit TLS cu sign-in, 587 este STARTTLS cu sign-in orice spune securitate, orice alt port cu upgrade-uri STARTTLS și semne în, și orice altceva este text simplu fără sign-in - presetări cu un singur click pentru releul platformei și furnizorii comuni - forma ca valoare: ceea ce este murdar, corpul de salvare, și validarea că solicită doar un nume de utilizator și o parolă atunci când se semnează conexiunea - pregatirea setarii si etapele unei expeditii de test - rampa de warm-up, numărătoare inversă, trimite numere de ritm și grafic program UtilizațiBulkWarmup sondaje de încălzire la fiecare 15 secunde în timp ce fila este vizibil, se oprește în timp ce este ascuns, se oprește pe un 403, și se aplică scrie optimist cu rollback.
· kamo-internal
Rebuilt tab-ul expeditor în vrac cu un nou panou de încălzire gazdă
Bulk Email Sender tab este reconstruit dintr-o singură formă lungă într-un set de carduri peste un proiect de stare salvată: - un catarg cu starea live (un expeditor salvat dar netestat acum citește "Necesită un test"), care trimite ca, conexiunea stocată într-o singură linie și când a fost testat ultima dată - o cale ferată cu patru trepte: conexiune, expeditor, test trecut, încălzire - conexiunea, cu prefixe, un control Non / STARTTLS / SSL-TLS, a sugestie atunci când un port bine-cunoscut este tastat, și un cont live de modul în care KamoCRM va conecta de fapt, avertisment atunci când portul suprascrie Securitate aleasă - sign-in, care este interactiv doar atunci când conectarea semne în, și rând parolă care spune dacă unul este salvat și când, cu Înlocuire și Elimină etapa până la salvare - identitatea expeditorului cu o previzualizare inbox, avertisment atunci când platforma Releu ar refuza domeniul Din - o bară de salvare lipicioasă, erori de pe backend plasate pe câmpul lor şi starea salvată luată din răspunsul personal al salvatorului - un test inline trimite care atrage în cazul în care mesajul a ajuns la, marcarea etapa care a refuzat Panoul de încălzire a noii gazde stă mai jos: on/off, ritm, ziua curentă ca o Inelul paisprezece-segment, astăzi trimite împotriva capacului cu un viu Numărătoare inversă la următoarea trimitere, totaluri, livrare sănătate și cât de mult din ea rapoartele releului, programul de 14 zile cu decizia fiecărei zile și un capac împotriva graficului actual, trimite pe oră astăzi și decalajele inegale între Trimite recent, coada, frâna de siguranță cu Resume acum, și Reset. Un membru fără dreptul de a schimba expeditorul primește o filă numai pentru citire, și Unul a refuzat cititul devine un stat de acces mai degrabă decât o eroare.
· EmailService
O campanie nu poate fi trimisă sau programată fără un expeditor de e-mail în vrac
Dispeceratul obişnuia să accepte o astfel de campanie şi apoi sări peste ea pe fiecare Bifați, lăsându-l la Sending cu nimic, dar o linie de jurnal. Trimite acum şi Programul îl refuză acum cu un mesaj care spune unde să-l pună pe expeditor. Gazda configurată și portul sunt suficiente; nu este necesar să se verifice.
· EmailService
Furnizorul seteaza raspunsurile api cu starea salvata si numeaza campul pe care il refuza
Pune acum returnează starea completă în loc de {succes: adevărat}, care A golit formularul după fiecare salvare. Câmpurile sunt validate pe partea serverului și refuzat ca 400 {error, domeniu}; o autentificare este necesară numai atunci când conexiunea va semna de fapt inch O parolă goală o păstrează pe cea stocată, clar Parola o elimină, și parolăUpdatedAt înregistrări atunci când unul a fost stabilit. Starea merge înapoi la PENDING SETTUP numai atunci când s-a schimbat un câmp relevant pentru livrare. Fiecare scriere către bula criptată trece acum printr-o singură încuiată. citire-modify-write care păstrează chei nu deține, pentru că pată este pe cale de a transporta de încălzire-up, de asemenea. Statul arată cum va fi EmailService Conectați-vă, iar platforma org este afișată setările releului său intern. Trimisul de test spune unde a eșuat (conectare, TLS, conectare, expeditor, destinatar, date) cu un fix scurt pentru fiecare.
· kamo-internal
Previzualizează e-mail-ul trimis, un public personalizat / fără șablon, și un adevărat Din domeniu
Previzualizare: un dialog care redă propria clădire a editoruluiBodyHtml() ieșire - String Save magazine și dispecer trimite - astfel încât antetul publicului, semnătura și subsolul și subsolul de conformitate sunt toate acolo și nu se poate Deviază de la adevăratul e-mail. Vederi de birou și mobile, "previzualizare ca" orice destinatar sau un eșantion, jetoane de fuziune umplut modul EmailService le umple, un plic în stil inbox şi un cadru cu nisip. Atins din compozitie pas, bar de fotbal, și vedere progres de campanie trimis. Publicul: "Custom / No Template" nu înfășoară nimic în jurul corpului. Este salvat ca SCOP COMPANY cu semnăturăScope NONE (pe care serverul îl stochează și niciodată citeste), iar campaniile o eticheteaza ca fiind personalizata. De la: propriile sale Din numele și câmpurile de adrese, implicit din e-mail în vrac furnizor și editabil pe campanie, cu o resetare la implicit și un avertisment atunci când adresa este în afara domeniului furnizorului. Aceasta înlocuiește expeditorul derivate din public și radioul fără răspuns. Destinatari: adresele campaniei deja trimise prin e-mail sunt marcate "Deja trimis," cu o notificare că nu vor mai fi trimise niciodată prin e-mail; E-mailService Acum raportează acest lucru per destinatar.
· KlusterServices
Semnează allo.kamocrm.com cu propria cheie a clientului, de către domeniul Dinspre sine
Campanie mail frunze ca salut.kamocrm.com prin postfix-bulk. Ea devine ei propria cheie DKIM (client ales, publicat ca client. domainkey.hello); și use esld = fals deci un salut. kamocrm.com mesaj este semnat d=salut în loc să se retragă la cheia poştală a părintelui, care nu reuşeşte strict Alinierea DKIM (adkim=s) domeniul publică.
· KlusterServices
Postfix-bulk, un al doilea releu de ieșire pentru e-mail campanie, cu rezultatele de livrare hrănit înapoi
Poşta de campanie îşi lasă acum propriul releu pe k3m1 (Egress 47.181.8.87) Bună ziua. kamocrm.com, astfel încât plângerile despre e-mail în vrac nu atinge reputaţia poştală.kamotrm.com (47.181.8.84). - Plaintext releu pe portul 25 numai pentru EmailService (NetworkPolicy); acceptă doar @hello.kamotrm.com expeditori și refuză orice altceva cu un 4xx, niciodată 5xx, deoarece dispecerul de campanie suprimă pe orice 5xx. - Un paznic de ieșire deține o livrare outbound excepția cazului în adresa publică pod este 47.181.8.87, astfel încât vrac nu poate pleca în liniște ca un alt IP. - Un ataș de livrare-evenimente citește jurnalul de e-mail și raportează fiecare campanie mesaj livrat / amânat / sarit / rezultat expirat la EmailService; unite de antetul X-Kamo-Ref, care este deposedat înainte de livrare. Aplicat manual pentru moment: desfasurare servicii.yml aplica mail/ fisiere dupa nume şi nu le enumeră încă.
· EmailService
O campanie e-mail-uri o adresă cel mai mult o dată, vreodată
Adresele se potrivesc tunderii și caz insensibil, și un rând de campanie a predat releului (trimis, în zbor, sărit, eșuat, sau recuperat) este acum registrul permanent al respectivei adrese: niciodată șters, resetat sau resetat. - materializeaza Primitorii folositi pentru a sterge fiecare rand si reconstrui lista de pe fiecare Salvați, astfel încât editarea unei campanii oprite a pus deja adrese prin e-mail înapoi în Coadă. Acum păstrează istoria, împrospătează rândurile care nu au fost încă contactate, elimină doar rândurile necontactate care au părăsit lista, și niciodată nu re-adds o adresați-vă campaniei pe care a contactat-o, oricât de multe ori se adaugă. - Dispeceratul cere un rând Sending înainte de releu vede. Un accident. între releul care acceptă un mesaj și rândul marcat SENT folosit pentru Lăsați-l QUEED și trimiteți-l din nou; acum rămâne Sending și o matura închide E o greşeală fără a încerca din nou. - Un destinatar adăugat în timp ce o campanie a fost oprit nu a primit un timp de eliberare, așa Nu a fost trimisă şi campania nu s-a terminat niciodată. Timpii de lansare acum du-te la Orice rând la coadă căruia îi lipseşte unul. - Un indice unic de pornire pe (campaign id, inferior (trim (email)))) susține regula la masă. Obiectivul listei de destinatari returnează acum numele fiecărui rând, valorile de fuziune, sursa și dacă a fost contactat, astfel încât redeschiderea și reeconomisirea unui proiect nu mai este şterge personalizarea. De la adresa cade înapoi la furnizorului de vrac, iar numele From este de fapt trimis (a fost depozitat și aruncat).
· kamo-internal
NoReply Outbound, un audit al poștei trimis de Dumnezeu ca adresă a platformei NoReply
O a treia secţiune sub poştă, prezentată numai membrilor eligibili de Dumnezeu, se deschide /mesaje/outbound/norreply: fiecare mesaj EmailService înmânat releu ca adresa platforma NoReply, cel mai nou primul, cu căutare, a Filtru trimis/a eșuat și un sertar care arată mesajul complet. Pagina întoarce spatele tuturor celor care nu sunt eligibili pentru Dumnezeu. Aceasta este curtoazia, nu de blocare: datele provin de la EmailService, care refuză orice sesiune fără GD.
· EmailService
Un registru al fiecărui mesaj trimis ca adresa platformei NoReply, care poate fi citită numai de Dumnezeu
Înregistrat în EmailSmtpService la un loc mail ajunge la releu, și decise de adresa From, astfel încât șabloane, campanii și toate acţiunile sunt acoperite fără a opta. Refuzurile sunt înregistrate. cu raţiunea releului şi încă aruncat. Scrisul ruleaza în propria sa tranzacție și nu aruncă niciodată: un rând de audit eșuat nu poate eșua sau da înapoi o trimitere. GET /api/email/noreply-outbound listes the Registre (search, status filter, paging, organisme excluse); / {id} returnează un mesaj cu corpul său. Ambele necesită GD în sesiune și nimic altceva: registrul se întinde pe fiecare Organizare, astfel încât nici un org-scoped dreapta poate deschide. Tabelul este creat la pornire de NoReplyOutboundSchema, ca E un registru cu articole.
· kamo-internal
Un link de urmărire poate ateriza pe alb-eticheta CRM taxe articol
Adds *************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************** /marketing / tracking, cu propria pictogramă. Calea este local-free ca frații săi: site-ul de marketing 308s it to *************** and keeps ?contain= peste hop, la fel ca /preturi (verificate împotriva site-ului live). Etichetă și indiciu rândul sunt în kamo-translation-dictionary 7a6fd4e2.
· kamo-marketing
Lasă un cititor să trimită articolul cuiva cunoscut
Un formular "pass-l pe" la poalele de ************* atins de la un cip din vârf şi o linie după cele şapte întrebări. Numele cititorilor până la trei persoane și ne e-mail fiecare dintre ele articol o dată, cu numele cititorului pe ea; ei pot deschide, de asemenea, în propriul client de e-mail sau copie link-ul în schimb. POST /api/share-article poartă înainte de EmailService-l vede: aceeași origine numai, un *** verificat server-side împotriva serviciului *** (celălalt forme aici înainte sarcina utilă fără ca nimeni să-l verifice), și auto-trimite numai pentru vizitatorii din UE/SEE, Regatul Unit și Elveția. It forwards a body construit din câmpuri delimitate, cu adresa vizitatorilor noştri înregistrată, e-mailService's /api/intern/article-share, which access the limits și lista de opt-out platforma org lui. Implementarea se referă la INTERN AUTH SECRET din mlos-intern-auth existent secret (opțional, astfel site-ul încă începe fără ea) și câștiguri Email SERVICE URL și CAPCHA SERVICE URL.
· EmailService
Email un articol la cineva, ca org platforma, cu un de lucru opt-out
Un vizitator de pe site-ul de marketing poate trimite articolul scaun-fee până la trei Oameni. Post/api/intern/article-share (X-interior-Auth, ca oricare alta /api / obiectivul final intern) trimite fiecare dintre ele un e-mail ca nivel superior organizație, de la "<sender> via KamoCRM" cu răspuns-Pentru expeditor. Reutilizează ceea ce există în loc să adauge o a doua copie a acestuia: - Opt-outs live în e-mail supresii, tastat la ID-ul platformei org, astfel încât Opti-out aici nu atinge niciodata lista orga gazduita si lista unei orgi niciodata Blochează asta. Link-ul este un jeton semnat (orgId UnsubscribeController existent și pagina acceptă acum alături de campanie jetoane, cu aceleași RFC 8058 List-Unsubscribe headers campanii trimite. - Livrarea trece prin *************** care câştigă Opțiuni de livrare (nume și antete suplimentare) astfel încât De la, decizia SPF şi releul rămâne decis într-un singur loc. Un apelant-built scrisoare nu are șablon rând, astfel încât contorul de utilizare este sărit pentru ea. Limite, numărate dintr-un registru hashed *************** creat la pornire) astfel încât fiecare pod este de acord: trei persoane pe cerere, preset numai note, 10 pe zi pe expeditor și pe adresa vizitatorilor, 500 pe zi per ansamblu, un e-mail pe adresa la fiecare 90 de zile, niciodată la o adresă suprimată. De asemenea, setează vrac-email.unsubscribe-base-url în configurația prod. Codul implicit este gol, care trimite mail-ul de campanie fără link-ul de dezabonare.
· kamo-marketing
Pune fiecare pagină în /sitemap.xml în sine, și lista pagini numai în limbile pe care le au
/Sitemap.xml a fost un index, astfel încât deschiderea a arătat 79 nume de fișiere mai degrabă decât Paginile site-ului. - /sitemap.xml este acum unul <urlset> cu fiecare pagină: 18.700 dintre ele, fiecare la adresa sa engleză, cu fiecare versiune lingvistică în care există ca o Hreflang alternativ. Aceasta se încadrează în limita de 50 000-URL / 50 MB pentru un singur fișier; trecut, fișierul este respins întreg. Comment Intraţi fără supleanţii lor, care ar pune fişierul aproape 60 MB. Fiecare pagina de intrare declară limba în sine. - Fişierele pe limbă, unde fiecare versiune lingvistică este un URL propriu, mutați la /semitap-index.xml. roboți.txt nume ambele fișiere. - O pagina a carui copie are propriul spatiu de nume mesaj este listata, si nume alternați, doar în localități că namespace este într-adevăr tradus în: cel puțin 90% din liniile sale prezente, mai puțin de 30% identice cu Engleză (app/lib/mesaj-locales.ts). Noul ************** articol și / resurse nu au încă traduceri. Ei au fost în toate cele 21 de localuri, 20 dintre ele pagina engleză sub un alt prefix. - Pagini de colectare citiți aceeași măsură live pentru COLECŢIA CONTENT LOCALELE hard-codate. Copie de colectare Swahili are a fost tradus de la acea listă a fost scris, astfel 132 pagini reale Swahili au fost îndreptat canonic lor la limba engleză.
· kamo-internal
Un departament Selectați verifică membrii pe care le arată
@ info: whatsthis Verificat, și citiți "Done" până la apăsat din nou. Acum verifică fiecare membru al departamentului. arată (căutarea și All / Online / Offline benzi decide cine) și să mergem de oricine verificat în afara ei. Ea citește întotdeauna Select, și este dezactivat pentru acel departament singur în timp ce selecția este exact acele rânduri; neverificați unul, verificarea cuiva în altă parte, sau un filtru care arată diferite Rândurile o aduc înapoi. Propriul rând al privitorului este lăsat pe dinafară: un chat de grup sau întâlnire pe care încep să le includă oricum, și o În caz contrar, întâlnirea le-ar trimite o invitaţie la sine. Dezactivează cu aria dezactivată astfel încât un utilizator de tastatură să se concentreze în interiorul capcanei panoului, și dimmed cu Opacitate, deoarece .operator-eticheta de culoare este !important sub coada de vânt .
· kamo-marketing
Anunţ de serviciu public cu privire la cine păstrează taxele de locuri software
Pagina nouă la ***************** explicând, pentru non-tehnică proprietari, cum functioneaza platforme resold alb-eticheta: o licenta agentie plata, pe loc taxe pe care agenţia le păstrează, şi taxa de utilizare calculată. Se termină cu întrebările să întrebe înainte de semnare și cum diferă KamoCRM. Server-trimite articol cu Articol și BreadcrumbList JSON-LD, propriul său OG card, un calculator scaun-fee, și CTA-uri pentru înscrieri gratuite, demo, contact și telefon. Linked from the Resources menu and hub, from the site banner as a PSA to the stânga din jurnalul de schimbare, și enumerate în harta site-ului.
· kamo-marketing
Lista fiecare pagină în fiecare limbă în care există, și face fiecare pagină de acord
/semitap.xml listat fiecare pagină o dată, ca URL-ul său englezesc. The 17,843 changelog intrările nu au avut nici un fel de limbă alternativă, și propriul hreflang fiecare pagină numit toate cele 21 de localităţi, indiferent dacă pagina exista sau nu în ele. - Fiecare versiune lingvistică este acum o <url> proprie, care transportă pagina plin, cluster hreflang reciproc și x-default: forma recomandată a Google și cel care devine o pagină localizată găsit fără a aștepta un crawler la Urmează o legătură alternativă cu ea. - O versiune este listata doar in cazul in care este propria canonica: SITE LOCALE pentru pagini scrise manual, articole de blog și pagini de listă de modificări; COLECŢIE CONTENT LOCALE pentru comparaţii, soluţii, integrări şi glosar; și pentru articolele KB și intrările în jurnalul de schimb, localurile KBService Serviciul de Securitate raportează o traducere reală pentru. Un ecou al englezilor Nu se pune. Listarea unei versiuni care canonicals la limba engleză transmite un URL care nu poate fi indexat. - Numele fiecărei pagini sunt exact acelaşi set. alternați locali () ia localizează o pagină există în, și un local în afara le canonics la limba engleză fără niciun index. Colecta pagini în localităţi fără copie de colectare utilizate pentru fie nici un index în timp ce fiecare altă pagină încă le numit ca supleanți. - Indexul este împărţit pe secţiune (pagini, colecţii, fiecare secţiune KB, Comment și bine în limitele 50.000-URL / 50 MB. Fişierele Changelog rulează cel mai vechi În primul rând, astfel încât un fișier complet nu se schimbă din nou. - Lista de modificări paginile 2..N sunt enumerate; fiecare este propriul său canonic. - /semitap.json este un document transmis care deţine fiecare pagină şi fiecare URL-ul limbii. /api/sitemap serveşte acelaşi document. - O sursă care nu poate fi citită răspunsuri 503 mai degrabă decât un sitemap parțial.
· KBService
Spune care localizează fiecare articol public este într-adevăr tradus în
Harta site-ului de marketing enumeră acum fiecare versiune a fiecărei limbi centru de ajutor, documentaţie şi articol de referinţă API, şi fiecare pagină articol numele celorlalţi ca alternatorii săi. Nici nu a putut spune o traducere dintr-un ecou: TraduceServicii raspunsuri directii ea nu are nici un furnizor pentru cu sursa engleză, astfel încât rândurile sw și ta repeta titlul și corpul englez cuvânt cu cuvânt (măsurat 2026-09-11). Naming care ar indica motoarele de căutare la paginile canonic înapoi la limba engleză. Noduli de copac și o singură citire transporta acum corpul diferă de articolul englezesc. Doar corpul este suficient - o arabă Rândul poate păstra titlul englez peste un corp tradus. Calculat într-o singură cerere pe cerere de KbTranslatedLocaleService, care citește prin intermediul EntitateManager, astfel încât nu este necesară eliberarea în comun-librar.

Universul tău te așteaptă.
Începeți gratuit în câteva minute.Adăugați produse oricând sunteți pregătit — fără migrare, fără autentificări noi.
Gratuit pentru totdeauna — nu este necesar un card de credit