Aller au contenu
KAMOUniverse

Changelog

Ce qui est nouveau.

Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.

  1. · EmailService

    Un jour d'échauffement sur lequel rien n'a été envoyé ne compte pas

    Une journée d'échauffement était la N-ième 24 heures au début, que ce soit ou non Tout s'est passé, donc tourner l'échauffement les jours avant la première campagne a passé silencieusement ses jours de faible volume. Un jour qui se termine sans tentative est maintenant répété: il et chaque jour glisser vers l'avant de tous les jours que n'a pas été utilisé, n'importe quel nombre à la fois, tandis que les jours qui ont été utilisés gardent leur Windows et histoire. Achèvement des mouvements avec eux, et état d'échauffement ReleverinDaysSkup. La course est réglée avant que le chemin d'envoi ne compte quoi que ce soit, donc un send est n'a jamais compté contre un jour qui est sur le point de se répéter; et quand le compteurs ne peut pas être lu la course est laissée en l'état plutôt que de fermer un jour avec zéro.

  2. · kamo-internal

    Une campagne que le backend ne peut pas envoyer dire pourquoi et comment le réparer

    EmailService suspend maintenant une campagne au lieu de faire échec à ses bénéficiaires un par un quand il ne peut pas l'envoyer: son From is off the platform relay domaine, ou il n'y a pas d'émetteur en vrac du tout. Il refuse l'envoi, le calendrier et reprendre pendant la durée de la cause, et la rapporte sur la campagne comme sendBlocker. - l'éditeur et la vue de progression montrent une bannière avec la cause, la phrase du serveur et le correctif en deux étapes: changer le From (ou utiliser le fournisseur par défaut) et reprendre, ou ouvrir l'expéditeur en vrac les paramètres et le reprise. Reprendre reste handicapé alors que le projet est encore a la cause - Reprendre maintenant le projet d'abord, donc un correctif à partir de la portée backend au lieu de la reprise de la campagne en stocké et refusé à nouveau - un avis d'envoi, d'horaire ou de reprise refusé est indiqué en place avec Le message du serveur, pas seulement sous toast, et la campagne est relu . . . . . . . . . . . . . . . . . . . . . - la grille des campagnes marque une campagne bloquée en plus de son statut, avec la raison en matière de survol - les erreurs de l'API de campagne préfèrent le message humain à un message nu code de la machine, et porter l'état et le code

  3. · kamo-internal

    Réchauffer dit que les jours indulgides ne comptent pas et dessine les dates qui ont glissé

    Un jour d'échauffement où rien n'est envoyé ne compte plus: la course glisse vers l'avant et le jour se répète lors de l'envoi de reprise, ce qui fait le changement Présentez-vous avant la première campagne. Le panel le dit maintenant, à côté l'interrupteur et à nouveau dans les notes de ralenti et non mises en marche. Quand des jours ont été sautés, la bague du jour dit combien, avec le Ce programme a avancé par ce nombre. Chaque tuile de l'emploi indique sa date, et l'infobullition du graphique le nomme, lu de chaque jour comme le backend a maintenant plutôt que sur lequel il est compté dès le premier, donc les dates glissées sont les ceux qui sont tirés. Sur /commercialisation/email, un échauffement inactif avec rien d'attente lit comme "on, commence par votre prochaine campagne" plutôt que de prétendre que l'exécution est en cours rythmé.

  4. · EmailService

    Le relais de la plate-forme refuserait un échec à la fois au lieu d'être rejugé

    Le relais n'envoie que comme son propre domaine et répond à toute autre chose avec un 451, donc une campagne qui est sur un autre domaine utilisé pour réessayer tous Récipient trois fois, chacun réessayer une tentative d'échauffement, avant que quiconque n'apprenne Le From était faux. Lorsque le fournisseur de l'organisation est l'hôte et le port du relais et le domaine From n'est pas le domaine d'envoi du relais, le destinataire est maintenant marqués FAILLET avec le fix dans son erreur: pas de SMTP, pas de ré-essai, non la suppression, et rien ne compte contre l'échauffement ou son créneau.

  5. · EmailService

    Un nouvel échauffement de l'hôte tient un courrier de campagne d'organisation et le libère au rythme de l'échauffement

    Alors que l'échauffement d'une organisme est allumé, le répartiteur laisse tout seul ses campagnes et un libérateur leur envoie un message à la fois, le plus tôt possible dans l'ensemble des campagnes de l'organisation, jamais après la coiffe horaire d'une campagne et Jamais la casquette d'échauffement de la journée. Il court toutes les secondes sous le le bail du expéditeur, de sorte que les deux ne peuvent jamais envoyer le même destinataire de différentes gousses. Les réglages, les jours décidés et le frein de sécurité en vie chez le fournisseur de vrac blob crypté; les contre-compteurs vivent à Redis et sont reconstruits à partir des lignes de destinataire si perdu. D' coordonnées GET, PUT et réinitialisation des points d'extrémité sous /api/email/rboussier/warmup signaler l'état, le calendrier, la file d'attente et la santé. Les deux voies envoient maintenant par une méthode par bénéficiaire, qui revendique la Ensevelie avant que le relais ne le voie. Les compteurs de campagne sont écrits sans sauver la campagne, le balayage de l'envoi interrompu incluait; épargne Il avait l'habitude de mettre une campagne en pause du mi-chemin vers SENDING.

  6. · kamo-internal

    Les rangées des destinataires portent des rangées en contact, et les rangées déjà en service conservent leur marque à côté du statut.

    Le DTO du destinataire d'EmailService indique désormais si la campagne a déjà Adresse électronique à chaque adresse. Le cartographe le transporte à travers, avec lastError, et remplit la campagne id le DTO quitte. Une ligne déjà contactée n'est jamais tenue par échauffement et n'a jamais été envoyée par courriel encore, donc la grille de progression ne lui donne plus la note d'échauffement, et quand son dernier résultat est tout sauf envoyé la puce de statut garde un petit Marque "Déjà envoyée". Dans l'étape des destinataires, une ligne marquée "Déjà envoyé" montre également comment cet envoi s'est terminé alors qu'il ne s'est pas simplement sorti.

  7. · kamo-internal

    La campagne De champ dit quand le relais de masse le refuserait

    Le champ de la campagne, par défaut du fournisseur de services en vrac, avertit lorsque l'adresse est hors domaine du fournisseur, en tant que courrier pouvant atterrir en spam. Sur la plate-forme relais qui n'est pas un risque mais une certitude: EmailService échoue à chaque destinataire d'une campagne dont le domaine From ne l'est pas le domaine d'envoi du relais ("Le relais d'encombrement n'envoie que comme "domaine"). Ainsi, lorsque le fournisseur de vrac porte un relais de plate-forme, un domaine hors domaine From est une erreur: le champ est marqué, une alerte dit ce qui va se passer et offre le fournisseur par défaut lorsque celui est sur le domaine du relais, et prévol des blocs d'émission jusqu'à ce qu'il soit fixé. Organisations sur leur propre SMTP le fournisseur reçoit toujours l'avertissement de spam plus doux.

  8. · EmailService

    Chaque message de campagne nomme sa ligne de destinataire dans X-Kamo-Ref

    Le relais en vrac enregistre l'en-tête contre sa file d'attente et le relaque avant l'exécution, de sorte que les résultats de livraison peuvent être adaptés à la ligne exacte du destinataire. Les tests du compositeur pinisent également le reste de ce qu'un message de campagne laisse avec: l'adresse et le nom de la campagne, chacun retomber à la majeure partie un nom d'affichage qui ne peut pas démarrer un en-tête propre; désabonner la boîte aux lettres sur le domaine dont le courrier est en fait d'où le courrier; et a Répondre à seulement lorsque la campagne en fixe un.

  9. · EmailService

    Les rapports de livraison du relais rebondissent, bloquent et comptent le courrier après transfert

    POST - prend les rapports du relais de la plate-forme de ce qui est devenu de chaque message, apparié à la ligne destinataire par le En-tête X-Kamo-Ref ou, à défaut, la dernière ligne envoyée à l'adresse les sept derniers jours. Un rebond dur (5.1.x, 5.2.1, 5.4.4) marque la ligne BOUNCED et supprime l'adresse. Un bloc (5.7.x) le marque FOURNIR mais conserve l'adresse, puisque le refus était de l'expéditeur, et non de la boîte aux lettres. Tout le reste permanent est un échec manifeste. La raison d'un report est maintenue sur la ligne jusqu'à la livraison. Seules les lignes encore SENT sont déplacées, et l'échauffement compte chaque rapport une fois, contre le jour où le message a été envoyé, de sorte que le rapporteur peut renvoyer un lot en toute sécurité.

  10. · EmailService

    Le calendrier, le rythme et les règles de santé de l'échauffement

    Un nouvel IP d'envoi est multiplié par quatorze jours d'échauffement. Jours 1 à 7 suivent un horaire fixe par rythme (conservateur, équilibré, agressif); à partir du jour 8 chaque jour ne croît du rythme que si la veille était en bonne santé par ses taux de rebond, de bloc et de report, et aussi maintenus. Chaque jour est décidé une fois et gardé avec la raison. Les messages sont mis au point par rapport à ce qui reste de la journée, avec une gigue moyenne et la pause occasionnelle, jamais plus rapide que quatre fois le taux régulier et Jamais aussi tard que le reste du budget de la journée ne correspond plus. Le le frein de sécurité s'arrête par jour que les récepteurs bloquants ou rebondissent.

  11. · kamo-internal

    Bannière de stimulation de la stimulation sur /commercialisation/courrier électronique

    Alors que le nouvel hôte se développe, les campagnes s'éteignent beaucoup plus lentement que leurs propres paramètres disent, et rien sur la campagne n'a dit pourquoi. Le campagnes sur l'espace de travail et le point de vue de l'avancement d'une campagne sont désormais minces bannière avec le jour, aujourd'hui envoie contre le chapeau, le prochain envoyer et ce qui attend, en liant au réglage de l'échauffement, et un destinataire en file d'attente explique qu'il est détenu. La bannière est cachée pendant que l'échauffement est éteint ou complet, et chaque fois que le l'échauffement ne peut pas être lu.

  12. · kamo-internal

    Client d'expéditeur en vrac avec des erreurs de champ et les critères d'évaluation de la mise en température

    Le client connaissait un statut de fournisseur appelé PENDING que le backend jamais envoie, donc un émetteur qui a été sauvé mais pas encore testé est tombé à "Pas configuré". Il lit maintenant PENDING-SETUP (en acceptant toujours PENDING) et normalise l'ensemble de l'état en un seul endroit: le résumé de la connexion, lorsque le dernier mot de passe changé, le relais de la plate-forme et si le membre peut le gérer. Les défaillances reviennent sous le nom de BulkEmailApiError, portant le statut HTTP et, pour a 400, le champ de formulaire le backend nommé, de sorte que le formulaire peut mettre le message sur ce champ et un 403 peut être représenté comme un état d'accès plutôt qu'un Erreur. Les 204 vides sont tolérés, et un épargne ou un échauffement écrit qui répond avec un signe nageur est suivi d'une GET au lieu d'être adoptée comme l'état, qui est ce qui a blanchi la forme après chaque sauvegarde. Ajoute les appels d'échauffement: GET et PUT /bulk-provider/chaîne et POST /remplisseur de vrac/chauffe/remise en état.

  13. · kamo-internal

    Règle de connexion, préréglage et modèle de visualisation de l'échauffement derrière l'émetteur en vrac

    Les pièces pures sur lesquelles sont construits les nouveaux écrans, chacun avec des tests: - la règle de connexion du port-premier, reflétée pour que le formulaire puisse dire comment KamoCRM se connectera avant que quoi que ce soit est sauvegardé: 465 est implicite TLS avec la connexion, 587 est STARTTLS avec s'inscrire, quelle que soit la sécurité, un autre port avec des améliorations et des signaux STARTTLS, et tout autre élément est texte en clair sans inscription - préréglages en un clic pour le relais de la plate-forme et les fournisseurs communs - la forme en tant que valeur: ce qui est sale, le corps de sauvegarde, et la validation que ne demande un nom d'utilisateur et un mot de passe que lorsque la connexion signe - préparation de la configuration et étapes d'un essai d'envoi - la rampe d'échauffement, le compte à rebours, les numéros de rythme et de diagramme de calendrier useBulkWarmup sonne l'échauffement toutes les 15 secondes pendant que l'onglet est visible, s'arrête pendant qu'il est caché, s'arrête sur un 403, et applique écrit optimisme avec le recul.

  14. · kamo-internal

    Reconstruit l'onglet expéditeur en vrac avec un nouveau panneau d'échauffement hôte

    L'onglet Bulk Email Sender est reconstruit à partir d'une forme longue en un ensemble de cartes sur un brouillon de l'état sauvegardé: - une tête de mât ayant le statut live (un expéditeur sauvegardé mais non testé maintenant est dit "Noude un test"), qui il envoie comme suit, la connexion stockée en une seule ligne et lorsqu'il a été testé pour la dernière fois - un rail de préparation en quatre étapes: connexion, expéditeur, essai passé, échauffement - la connexion, avec préréglages, a Néant / STARTTLS / SSL-TLS, a suggestion lorsqu'un port bien connu est tapé, et un compte rendu en direct de la manière dont KamoCRM se connectera effectivement, avertissant lorsque le port passera Sécurité choisie - l'inscription qui n'est interactive que lorsque la connexion s'inscrivait, et a une ligne de mot de passe qui indique si l'un est sauvegardé et quand, avec Remplacer et Retirez la mise en scène jusqu'à ce qu'elle soit enregistrée - l'identité de l'expéditeur avec un aperçu de la boîte de réception, l'avertissement lorsque la plate-forme Recommue refuser le domaine From - une barre de sauvegarde collante, des erreurs du backend placées sur leur champ, et l'état sauvegardé pris à partir de la réponse de l'épargne - un essai en ligne envoie ce tirage au sort où le message est arrivé, en indiquant une étape qui l'a refusée Le nouveau panneau d'accueil Warm Up se trouve ci-dessous: marche/arrêt, rythme, le jour actuel en tant que quatre-longueur de segments, l'envoi d'aujourd'hui contre le chapeau avec un live compte à rebours jusqu'à l'envoi suivant, totaux, santé de la prestation et combien de temps d'entre eux les rapports de relais, le calendrier de 14 jours avec décision de chaque jour et un plafond par rapport à un graphique réel, les envois horaires d'aujourd'hui et les écarts inégaux entre les récents envois, la file d'attente, le frein de sécurité avec Resume maintenant, et Reset. Un membre sans droit de changer l'expéditeur obtient un onglet en lecture seule, et l'on refuse la lecture obtient un état d'accès plutôt qu'une erreur.

  15. · EmailService

    Une campagne ne peut être envoyée ou programmée sans un expéditeur de courrier électronique en nombre

    Le répartiteur avait l'habitude d'accepter une telle campagne et de la sauter sur chaque tick, en la laissant à Enfant avec rien d'autre qu'une ligne de log. sendNow et programme le refuse maintenant avec un message disant où mettre l'expéditeur en place. Un hôte et un port configurés suffisent; il n'a pas besoin d'être vérifié.

  16. · EmailService

    Le fournisseur met en place api répond avec l'état sauvegardé et nomme le champ qu'il refuse

    PUT retourne maintenant l'état de cadre complet au lieu de "success: true", qui a blanchi le formulaire après chaque sauvetage. Les champs sont validés côté serveur et refusée en tant que champ de 400 error; une connexion n'est requise que lorsque la connexion s'enferera effectivement. Un mot de passe vierge conserve le mot de passe stocké, clearPassword le supprimer, et le mot de passeAdedA enregistre quand on a été défini. Le statut est supprimé Retour à PENDING-SETUP uniquement lorsqu'un champ d'exécution a changé. Chaque écriture au blob crypté passe maintenant par une bobine verrouillée read-modify-write qui garde les clés qu'il ne possède pas, parce que le blob est sur le point de porter l'échauffement aussi bien. L'État montre comment EmailService connecter, et l'org de la plate-forme est représenté les réglages de son relais interne. L'envoi du test indique où il a échoué (connecter, TLS, login, émetteur, destinataire, données) avec une correction abrégée pour chacun.

  17. · kamo-internal

    Prévisualiser l'e-mail tel qu'il est envoyé, un public personnalisé / sans modèle, et un vrai champ From

    Avant-première: un dialogue qui rend la sortie de la construction de l'éditeurBodyHtml() - la string Save stores et le répartiteur envoie - donc l'en-tête du public, signature et pied de page et le pied de page de conformité sont tous là et il ne peut pas dérive du vrai e-mail. Vues de bureau et de téléphonie mobile, "prévisualiser" n'importe quel destinataire ou un échantillon, des jetons de fusion remplis comme EmailService les remplit, une enveloppe de type boîte de réception, et un cadre bac à sable. Récupéré par la composition pas, le stand-stop, et la vision de progression d'une campagne envoyée. Public : "Douane/sans modèle" n'enroule rien autour du corps. Il est sauvé en tant que champ d'application de la SOCIÉ avec signatureScope NONE (que le serveur stocke et jamais lise) et les campagnes la grille l'étiquettent comme Custom. À partir de: ses propres champs From name and address, par défaut à partir de l'e-mail en masse un fournisseur et éditable par campagne, avec une réinitialisation à la valeur par défaut et un avertissement lorsque l'adresse est hors du domaine du fournisseur. Ceci remplace l'émetteur dérivé du public et de la radio sans réplage. Récipiendaires: les adresses de la campagne déjà envoyées par courrier électronique sont marquées "Déjà envoyés", avec un avis indiquant qu'ils ne seront plus jamais envoyés par e-mail; EmailService Cela en fait dès maintenant par destinataire.

  18. · KlusterServices

    Signez hello.kamocrm.com avec sa propre clé client, par le domaine From lui-même

    Le courrier de campagne part comme hello.kamocrm.com via postfix-bulk. Il obtient son propre clé DKIM (client sélecteur, publiée en tant que client. Un message hello.kamocrm.com est signé d.hello plutôt que de retomber dans la clé de courrier de la société mère, qui échoue à la stricte L'alignement DKIM (adkimès) le domaine publie.

  19. · KlusterServices

    Postfix-bulk, un deuxième relais sortant pour le courrier de campagne, avec des résultats de livraison à nouveau

    Le courrier de la campagne sort désormais par son propre relais sur k3m1 (sortie 47.181,887) comme hello.kamocrm.com, donc les plaintes concernant le courrier en nombre ne touchent jamais le réputation de mail.kamocrm.com (47.181.8.84). - Relais en texte clair sur le port 25 pour EmailService uniquement (NetworkPolicy); il n'accepte que les expéditeurs et refuse toute autre chose avec un 4xx, jamais un 5xx, parce que le répartiteur de campagne supprime sur n'importe quel 5xx. - Un garde de sortie tient la livraison à l'étranger à moins que l'adresse publique de la gousse est 47.181.8.87, de sorte que l'encombrement ne peut jamais partir tranquillement comme un autre IP. - Un side-car de livraison lit le journal du courrier et signale chaque campagne; le résultat de message livré / différé / rebondissement/ expiré à EmailService, joint par l'en-tête X-Kamo-Ref, qui est désamarré avant la livraison. Appliqué à la main pour l'instant: deploy-services.yml applique mail/ files par nom et ne les énumère pas encore.

  20. · EmailService

    Une campagne envoie une adresse au plus une fois,

    Les adresses sont parées par coupées et insensible à la casse, et une ligne de la campagne a remis au relais (envoyé, en vol, rebondi, échoué ou rejugé) est maintenant son enregistrement permanent de cette adresse: jamais supprimé, refixé ou resous. - matérialiser les destinataires utilisés pour supprimer chaque ligne et reconstruire la liste sur chaque ligne; sauvegarder, donc éditer une campagne en pause a mis des adresses déjà envoyées par courrier électronique dans le la file d'attente. Il garde maintenant l'histoire, rafraîchit des rangées qui ne sont pas encore contactées en place. ne supprime que les lignes non contactées qui ont quitté la liste, et ne rajoute jamais une S'attaquer à la campagne a été contactée, mais il est ajouté plusieurs fois. - L'expéditeur réclame une ligne ENVOYER avant que le relais ne le voie. Un accident entre le relais acceptant un message et la ligne marquée SENT utilisé pour Laisser quatre-voir et l'envoyer à nouveau; maintenant il reste ENVOYER et un balayage ferme Il est FAIL sans essayer. - Un destinataire a ajouté pendant qu'une campagne était en pause n'a jamais eu de temps de sortie, donc Il n'a jamais été envoyé et la campagne n'a jamais été terminée. Les heures de libération vont maintenant à toute rangée en file d'attente qui n'en manque pas. - Un index unique de démarrage sur (campaign-id, inférieur (trim(email))) soutient la règle à la table. Le point d'extrémité de la liste de destinataires retourne maintenant le nom de chaque ligne, les valeurs de fusion, la source. et s'il a été contacté, donc rouvrir et retirer un projet efface la personnalisation. L'adresse From Revenue à la source de l'essentiel, et le nom From est effectivement envoyé (il a été stocké et abandonné).

  21. · kamo-internal

    NoReply Outbound, un audit du courrier envoyé uniquement par la plate-forme NoReply

    Une troisième section sous Mail, présentée uniquement aux membres éligibles à la divinité, s'ouvre /messages/outbound/norquy: chaque message EmailService remis à l'Email relay en tant qu'adresse de la plate-forme NoReply, la plus récente en premier, avec recherche, a Filtre Envoyé/Faiement et un tiroir montrant le message complet. La page détourne tous ceux qui ne sont pas éligibles à Dieu. Telle est la courtoisie, pas la serrure: les données proviennent d'EmailService, qui refuse toute session sans GD.

  22. · EmailService

    Un registre de chaque message envoyé comme l'adresse NoReply de la plate-forme, lisible par Dieu uniquement

    Enregistré dans EmailSmtpService à un endroit du courrier atteint le relais, et décidé par l'adresse From, donc modèles transactionnels, campagnes et Les parts d'articles sont toutes couvertes sans y avoir d'optant. Les refus sont enregistrés. avec la raison du relais et toujours retombée. L'écriture court dans sa propre transaction et ne lance jamais: une ligne d'audit défaillante ne peut pas échouer ou revenir en arrière a envoyer. GET /api/email/noreply-outbound répertorie le livre (recherche, filtre d'état, la radiomessagerie, les corps exclus); /-id- retourne un message avec son corps. Les deux exiger du GD sur la session et rien d'autre: le livre l'organisation, donc pas de droit org-arped ne peut l'ouvrir. Le tableau est créé au démarrage par NoReplyOutboundSchema, en tant que Le livre de partage d'articles est le suivant.

  23. · kamo-internal

    Un lien de suivi peut atterrir sur l'article sur les redevances CRM en marque blanche

    Ajout de l'ajout aux destinations du cueilleur de suivi sur /marketing/tracking, avec sa propre icône. Le chemin est libre de destination comme ses frères et sœurs: site de commercialisation 308 à - et conserve une réduction à travers le site de marketing 308 s'il est situé à l'autre hop, le même que /prix (vérifié par rapport au site vivant). L'étiquette et l'indice de la rangée sont en dictionnaire de transformation kamo 7a6fd4e2.

  24. · kamo-marketing

    Laissez un lecteur envoyer l'article sur les frais de siège à quelqu'un qu'ils connaissent

    Un formulaire "passe it on" au pied de l'école à partir d'une puce en haut et d'une ligne après les sept questions. Les noms du lecteur jusqu'à trois personnes et nous envoyons à chacun d'eux l'article une fois, avec le Nom du lecteur dessus; ils peuvent aussi l'ouvrir dans leur propre client de courrier ou copier le lien à la place. POST /api/share-article passe-t-il avant EmailService de le voir: même origine uniquement, a, côté serveur vérifié par rapport au service (l'autre côté du serveur vérifié par rapport au service de l'engin z) les formulaires ici transmettent la charge utile sans que personne ne la vérifie), et envoyer en auto-envoyé uniquement pour les visiteurs de l'UE/EEE, du Royaume-Uni et de la Suisse. Il transmet un organe construits à partir de champs délimités, avec l'adresse du visiteur notre ingresse enregistrée, à EmailService's /api/internal/part-article, qui impose les limites et la liste d'exclusion de l'organisation de la plate-forme. Le déploiement indique qu'INTERNAL-AUTH-SECRET à partir des mlos-inter-auth existants secret (facultatif, donc le site commence toujours sans lui) et gains EMAIL-SERVICE-URL et CAPCHA-SERVICE-URL.

  25. · EmailService

    Envoyer un article par courrier électronique à une personne, en tant qu'instance de la plate-forme, avec une clause de non-participation au travail

    Un visiteur sur le site de marketing peut envoyer l'article sur les frais de siège à trois au maximum les gens. POST /api/internal/partage de l'article (X-Internal-Auth, comme tous les autres /api/critère frontal interne) envoie à chacun d'eux un e-mail en tant que niveau supérieur l'organisation, de "sender" via KamoCRM" avec Reply-To the émetteur. Reuses ce qui existe au lieu d'en ajouter une deuxième copie: - Opt-outs live dans le courrier électronique, les suppressions, mis à la clé de route de l'og de la plate-forme, donc un l'exclusion ici ne touche jamais une liste d'ogs hébergées et une liste d'orges jamais Bloppe cela. Le lien est un jeton signé (orge-email, HMAC) que le Le centre de contact et la page d'accueil sont désormais acceptés à côté de la campagne des jetons, avec les mêmes campagnes RFC 8058 List-Unsubscribe, des campagnes d'en-têtes sont envoyées. - La livraison passe par les gains Admissions de livraison (nom d'affichage et en-têtes supplémentaires) et le séjour de secours du relais décidé en un seul endroit. Une lettre construite par l'appelant n'a pas de ligne de modèle, donc le compteur d'utilisation est sauté pour elle. Limites, comptées à partir d'un grand livre créé sur startup) donc chaque pod est d'accord: trois personnes par demande, préréglage notes seulement, 10 par jour par expéditeur et par adresse de visiteur, 500 par jour au total, un e-mail par adresse tous les 90 jours, jamais à une adresse supprimée. Raccordement de bulk-email.unsubscribe-base-url dans le prod configmap. Le code default est blanc, qui envoie du courrier de campagne sans lien de désabonnement.

  26. · kamo-marketing

    Mettez chaque page dans /sitemap.xml lui-même, et listez les pages uniquement dans les langues qu'ils ont

    /sitemap.xml était un index, donc l'ouverture il montrait 79 noms de fichiers plutôt que les pages du site. - /sitemap.xml est maintenant un urlset à chaque page: 18 700 d'entre eux, chacun à son adresse anglaise, avec toutes les versions linguistiques dans lesquelles elle existe hreflang alterne. C'est dans la limite de 50 000 U.R. pour un seul fichier; après lui, le dossier est rejeté entier. Entrées de changelog entrez sans leurs suppléants, ce qui mettrait le dossier près de 60 Mo. Chaque La page d'entrée déclare elle-même ses langues. - Les fichiers par langue, où chaque version linguistique est une URL qui lui est propre, se déplacer vers /sitemap-index.xml. robots.txt noms des deux fichiers. - Une page dont la copie a son propre espace de noms de message est listée, et noms alterne, seulement dans les endroits où l'espace de noms est vraiment traduit en: au moins 90 % de ses chaînes se présentent, moins de 30 % identiques à la Anglais (app/lib/message-locales.ts). La nouvelle - l'article et/les ressources n'ont pas traductions à ce jour. Ils étaient dans les 21 localités, dont 20 en anglais sous un autre préfixe. - Les pages de collecte lisent la même mesure en direct pour les collections à la place de le COLLECTION-CONTENT-LOCALES. Le copie de la collection swahili a ont été traduits depuis que cette liste a été écrite, donc 132 pages en swahili réel pointaient leur canonique sur l'anglais.

  27. · kamo-internal

    Un département sélection vérifie les membres qu'il affiche

    Le répertoire par département sélectionné utilisé pour transformer la liste entière en mode select avec rien vérifié, et lire "Fait" jusqu'à ce qu'il soit pressé à nouveau. Il vérifie maintenant chaque membre que le département est montrant (la recherche et la bande All / Online / Offline décider qui) et laisse passer toute personne vérifiée à l'extérieur. Il lit toujours Select, et est désactivé pour ce seul département pendant la sélection est exactement ces rangées; décocher une, vérifier quelqu'un ailleurs, ou un filtre qui montre différent les querelles le ramènent. La ligne du spectateur est laissée de côté: une discussion de groupe ou une réunion qu'ils commencent les inclut de toute façon, et un Sinon, une réunion leur enverrait une invitation à discuter. Handicapé avec aria-handeté de sorte qu'un utilisateur de clavier garde la focalisation à l'intérieur du piège du panneau, et assimilable avec opacité parce que la couleur de .operator-label est "important sous le vent de la queue" - important: true".

  28. · kamo-marketing

    Annonce d'intérêt public sur les personnes qui tient les frais de siège des logiciels

    Nouvelle page à l'adresse suivante : propriétaires, comment fonctionnent les plateformes de revente en marque blanche: une licence d'agence forfaitaire, par siège les frais que l'agence garde, et l'utilisation mesurée au-dessus. Se termine par les questions demander avant de signer et comment KamoCRM diffère. Article rendu par le serveur avec article et BreadcrumbList JSON-LD, son propre OG carte, calculatrice de la taxe de siège et CTA pour l'inscription gratuite, la démonstration, le contact et le téléphone. Lié à partir du menu Ressources et du centre, de la bannière du site en tant que PSA à la gauche du journal de changement, et listé dans le sitemap.

  29. · kamo-marketing

    Énumérer chaque page dans chaque langue dans laquelle elle existe, et rendre chaque page en accord

    /sitemap.xml listait chaque page une fois, comme son URL anglais. Le journal des changes de 17 843 entrées n'avaient pas de langue alternées du tout, et chaque page a son propre hreflang nommé les 21 lieux, que la page existait ou non. - Chaque version linguistique est maintenant une version urli qui lui est propre, portant la page pleine, cluster hreflang réciproque et x-default: le formulaire recommandé de Google, et celui qui obtient une page localisée trouvée sans attendre un chenilleur pour suivre un lien alternatif avec celui-ci. - Une version n'est listée que lorsqu'elle est son propre canonique : pages manuscrites, billets de blog et pages de liste de changelog; COLLECTION-CONTENT-LOCALES pour les comparaisons, les solutions, les intégrations et glossaire; et pour les articles de KB et les entrées de changelog, les sites KBService et SecurityService rapporte une traduction réelle pour. Un écho de l'anglais ne compte pas. Liste d'une version canonique en anglais soumet une URL qui ne peut pas être indexé. - Chaque page nomme exactement le même ensemble. localAlternates() prend le localise une page existe dans, et un lieu en dehors d'eux canoniques à l'anglais sans index. Collection de pages dans les localités sans copie de collection utilisée pour être noindex alors que toutes les autres pages les ont encore nommés comme suppléants. - L'indice est divisé par section (pages, collections, chaque section KB, changelog list pages, changelog entrées), chaque fichier avec son derniermod le plus récent et bien à l'intérieur des limites de 50 000 U.R.N. Les fichiers de changebooks sont les plus anciens d'abord, donc un fichier complet ne change plus jamais. - Les pages de liste de change.N sont listées; chacune est sa propre canonique. - /sitemap.json est un document diffusé en continu contenant chaque page et chaque page L'adresse URL/api/sitemap sert le même document. - Une source qui ne peut pas être lue les réponses 503 plutôt qu'une feuille de site partielle.

  30. · KBService

    Dites quels lieux chaque article public est vraiment traduit en

    Le sitemap du site du site de marketing répertorie désormais toutes les versions linguistiques de chaque site. Centre d'aide, documentation et article de référence de l'API, et chaque page d'article désigne les autres comme son hreflang alterne. L'une ni l'autre ne pouvait pas non plus indiquer une traduction à partir d'un écho: TranslateService répond aux instructions pour lesquelles il n'a pas de fournisseur avec la source anglaise, donc les sw et ta rows répètent le titre anglais et le corps mot pour mot (mesuré 2026-09-11). Désignation de ces moteurs de recherche de points sur des pages qui revenons canoniques à l'anglais. Les nœuds d'arbre et les lits simples portent maintenant « locales » : les lieux dont le titre ou le corps diffère de l'article anglais. Le corps seul suffit - un arabe row peut conserver le titre anglais sur un corps traduit. Calculé dans une requête par demande de KbTranslatedLocalesService, qui lit à travers le EntityManager donc aucune libération de bibliothèque partagée n'est nécessaire.

Votre univers vous attend.

Commencez gratuitement en quelques minutes. Ajoutez des produits quand vous êtes prêt. Pas de migration, pas de nouvelles connexions.

Gratuit pour toujours — aucune carte de crédit requise