Bereik

Grow

Manage

Automate

Bereik

Grow

Manage

Automate

Handleiding voor e-mailmigratie van on-premises naar cloud

Bird

28 jun 2020

E-mail

1 min read

Handleiding voor e-mailmigratie van on-premises naar cloud

Bird

28 jun 2020

E-mail

1 min read

Handleiding voor e-mailmigratie van on-premises naar cloud

Zo vaak horen we de vraag: "Hebben jullie een soort draaiboek dat het proces uitstippelt voor migratie van een on-premise installatie naar Bird"?

Ja, dat hebben we. Blijf lezen.

Eerst een beetje achtergrond. De Bird Cloud-service is in 2014 gecreëerd uit het enorme succes van de On-Premises Momentum MTA-oplossing. Momentum vormt de kern van de Bird Cloud en biedt snelle levering en verkeersbeheer voor duizenden klanten op de cloudservice. Hierdoor krijgt Momentum een groot deel van onze technische aandacht, maar de resultaten van dat werk zijn vaak verborgen in prestatieverbeteringen die niet veel aandacht krijgen. Momentum-klanten zien de voordelen van dit werk elke keer dat een nieuwe publieke release van Momentum wordt gepubliceerd.

Dit betekent NIET dat Bird alleen maar "Momentum in de Cloud" is. MessageBird is veel meer dan dat en kan extra voordelen hebben voor klanten die ervoor kiezen om te migreren of hen in een hybride benadering te gebruiken. Deze voordelen komen voort uit onze moderne cloud-gebaseerde e-mail API-architectuur, die mogelijkheden biedt die niet beschikbaar zijn in traditionele on-premise oplossingen. Bovendien hebben we het erg eenvoudig gemaakt voor PowerMTA klanten om naar Bird te migreren of PowerMTA met Bird in een hybride configuratie te gebruiken. De rest van dit document beschrijft in detail hoe u uw berichtstromen van Momentum of PowerMTA naar de Bird Cloud-service kunt migreren.

Er zijn eigenlijk twee afzonderlijke scenario's om te overwegen bij het migreren naar Bird vanuit Momentum of PowerMTA.

  1. U bent klaar om de on-premise wereld volledig te verlaten, uw fysieke datacenters te sluiten en niet langer rechtstreeks enig on-premise MTA te beheren. Dit betekent Momentum of PowerMTA uit uw implementatie verwijderen en berichten rechtstreeks naar SparkPost sturen voor berichtverwerking. Voordat u uw on-premise infrastructuur uit de roulatie haalt, zorgt u ervoor dat u uitgebreide databaseback-ups heeft van alle kritieke systemen, vooral als u PostgreSQL-databases draait die belangrijke historische gegevens of configuraties bevatten.

  2. U heeft redenen om een deel van de on-premise infrastructuur te behouden, om welke reden dan ook. Enkele mogelijkheden kunnen zijn:

  • specifieke leveringsstromen die voorbewerking in Momentum vereisen

  • capaciteitssplitsing voor piek- of noodherstelbehoeften

  • ondersteuning van oudere klanten in PMTA terwijl nieuwe klanten naar SparkPost worden verplaatst

…dan wilt u de andere berichten doorsturen naar Bird voor verdere berichtverwerking.

In beide situaties moet u zich ervan bewust zijn dat Bird alleen SMTP-berichten accepteert voor levering die worden geïnjecteerd via poort 587 of 2525 en SMTP_Auth gebruiken met een specifieke gebruikersnaam en wachtwoord (Zie SMTP-documenten hier). We raden ook sterk aan om te verbinden met een TLS-verbinding, maar dat is niet strikt vereist. Als u uw MTA-laag volledig vervangt (scenario 1), dan wilt u misschien ook overwegen om de Transmissions REST API te gebruiken die berichten via HTTPS-verbindingen kan accepteren. Documentatie over die API is hier.

Voor organisaties die on-premise infrastructuur onderhouden die veilige e-mailmogelijkheden vereist, biedt onze S/MIME implementatiegids voor PowerMTA en Momentum gedetailleerde installatie-instructies voor versleutelde e-maillevering.

Welke optie kies ik?

Om uit te vinden of je in optie #1 of optie #2 zit, overweeg deze factoren:

  • Gebruik je Momentum's Lua scripting engine voor iets ingewikkelders dan het routeren van berichten?

    • Lua is een uitgebreide script tool voor het manipuleren van berichten in-line, maar de overgrote meerderheid van onze gebruikers gebruikt het alleen om een binding voor levering te selecteren.  Als dat het geval is, kun je je generatiecode aanpassen om een ip_pool attribuut toe te voegen aan de X-MSYS-API header en Bird de route voor je laten toewijzen. 

    • Als je Lua gebruikt om complexere dingen te doen zoals body filtering, Mail_From herschrijvingen, of berichtencadansberekeningen, en het is niet haalbaar om die logica naar je injectietoepassing te verplaatsen, dan wil je misschien overwegen om over te stappen naar het Optie #2 kamp.

  • Is je generatiesysteem in staat om berichten te verzenden via poort 587 met behulp van TLS en SMTP_Auth?

    • Sommige campagnemanagementsystemen kunnen alleen post verzenden via poort 25 in cleartext. Dit veroorzaakt een beveiligingsprobleem voor Bird, dus je wilt misschien overwegen Optie #2 te kiezen

  • Gebruik je PowerMTA substitutiesyntax of andere in-line berichtmodificatie?

    • Als je deze functie naar je generators kunt verplaatsen of de Bird Template Language kunt gebruiken, dan kun je optie 1 nog steeds gebruiken, maar anders moet je misschien overwegen om een PMTA-node online te houden voor deze berichtmodificatie voordat je ze naar Bird stuurt voor levering.

  • Heb je enige inkomende AV/AS-scanning nodig voor injectie? Terwijl dit mogelijk is in Momentum en PowerMTA, gaat eBird ervan uit dat je al die controles al hebt uitgevoerd.  Je wilt misschien overwegen om dat voor injectie te doen.

Welke kant je ook op gaat, het zal zeker invloed hebben op je commerciële relatie.  Zoals je je kunt voorstellen, is dit niet onze eerste ervaring. Zorg ervoor dat je je Commerciële Accountmanager en Customer Success Manager betrekt, zodat we je door de details kunnen helpen en ervoor kunnen zorgen dat je de beste waarde voor je geld krijgt.

Voor Optie #1 Kamp (Going “cold turkey”):

Laten we aannemen dat u akkoord gaat met optie 1 en u klaar bent om uw on-premises MTAs uit te schakelen en u hebt besloten door te gaan met de SMTP-injectiemethode, zonder uw berichtensystemen te wijzigen.  Uw generatiesystemen moeten een volledig geformatteerd SMTP-bericht maken en het vervolgens naar Bird pushen via TLS met SMTP_AUTH, waarbij de gebruikersnaam en het wachtwoord worden beschreven op deze pagina. Vergeet niet dat het "wachtwoord" de API-sleutel is die u genereert in uw Bird-account met de SMTP-bezorgingsoptie ingeschakeld.

Als u zich in het kamp voor Optie #1 bevindt, overweeg dan om direct vanuit uw generatiesysteem over te schakelen naar de REST API. In de meeste gevallen ontdekken we dat de verwerkende systemen van klanten al JSON over HTTP gebruiken en moeten converteren naar SMTP voordat ze injecteren. U kunt die stap overslaan en het direct naar ons sturen als een JSON-geformatteerde REST-payload.

Als u ervoor kiest om met de REST API te injecteren, moet u mogelijk uw contentcreatiesysteem een beetje aanpassen, maar het kan de moeite waard zijn.  Hier kunt u meer ontdekken.

Een van de grootste zorgen die grote ESPs hebben bij een Migratie is IP Warming. Meestal hebben ze vele jaren besteed aan het zorgvuldig voorbereiden van hun IP-adresvoorraad, dus de gedachte om al dat werk op te geven is pijnlijk. Bird heeft een Bring Your Own IP (BYOIP) proces uitgewerkt dat dat probleem oplost. Als u ten minste één aaneengesloten /24 CIDR-blok hebt, kan Bird die bestaande IP's gebruiken voor levering, wat u de moeite bespaart om ze opnieuw op te warmen. Als u van die optie gebruik kunt maken, kunt u de sectie hier over IP-warmup overslaan.

Als u het gevoel heeft dat u hier klaar bent om te gaan, ga dan verder naar 'Making it happen'

Laten we aannemen dat u akkoord gaat met optie 1 en u klaar bent om uw on-premises MTAs uit te schakelen en u hebt besloten door te gaan met de SMTP-injectiemethode, zonder uw berichtensystemen te wijzigen.  Uw generatiesystemen moeten een volledig geformatteerd SMTP-bericht maken en het vervolgens naar Bird pushen via TLS met SMTP_AUTH, waarbij de gebruikersnaam en het wachtwoord worden beschreven op deze pagina. Vergeet niet dat het "wachtwoord" de API-sleutel is die u genereert in uw Bird-account met de SMTP-bezorgingsoptie ingeschakeld.

Als u zich in het kamp voor Optie #1 bevindt, overweeg dan om direct vanuit uw generatiesysteem over te schakelen naar de REST API. In de meeste gevallen ontdekken we dat de verwerkende systemen van klanten al JSON over HTTP gebruiken en moeten converteren naar SMTP voordat ze injecteren. U kunt die stap overslaan en het direct naar ons sturen als een JSON-geformatteerde REST-payload.

Als u ervoor kiest om met de REST API te injecteren, moet u mogelijk uw contentcreatiesysteem een beetje aanpassen, maar het kan de moeite waard zijn.  Hier kunt u meer ontdekken.

Een van de grootste zorgen die grote ESPs hebben bij een Migratie is IP Warming. Meestal hebben ze vele jaren besteed aan het zorgvuldig voorbereiden van hun IP-adresvoorraad, dus de gedachte om al dat werk op te geven is pijnlijk. Bird heeft een Bring Your Own IP (BYOIP) proces uitgewerkt dat dat probleem oplost. Als u ten minste één aaneengesloten /24 CIDR-blok hebt, kan Bird die bestaande IP's gebruiken voor levering, wat u de moeite bespaart om ze opnieuw op te warmen. Als u van die optie gebruik kunt maken, kunt u de sectie hier over IP-warmup overslaan.

Als u het gevoel heeft dat u hier klaar bent om te gaan, ga dan verder naar 'Making it happen'

Laten we aannemen dat u akkoord gaat met optie 1 en u klaar bent om uw on-premises MTAs uit te schakelen en u hebt besloten door te gaan met de SMTP-injectiemethode, zonder uw berichtensystemen te wijzigen.  Uw generatiesystemen moeten een volledig geformatteerd SMTP-bericht maken en het vervolgens naar Bird pushen via TLS met SMTP_AUTH, waarbij de gebruikersnaam en het wachtwoord worden beschreven op deze pagina. Vergeet niet dat het "wachtwoord" de API-sleutel is die u genereert in uw Bird-account met de SMTP-bezorgingsoptie ingeschakeld.

Als u zich in het kamp voor Optie #1 bevindt, overweeg dan om direct vanuit uw generatiesysteem over te schakelen naar de REST API. In de meeste gevallen ontdekken we dat de verwerkende systemen van klanten al JSON over HTTP gebruiken en moeten converteren naar SMTP voordat ze injecteren. U kunt die stap overslaan en het direct naar ons sturen als een JSON-geformatteerde REST-payload.

Als u ervoor kiest om met de REST API te injecteren, moet u mogelijk uw contentcreatiesysteem een beetje aanpassen, maar het kan de moeite waard zijn.  Hier kunt u meer ontdekken.

Een van de grootste zorgen die grote ESPs hebben bij een Migratie is IP Warming. Meestal hebben ze vele jaren besteed aan het zorgvuldig voorbereiden van hun IP-adresvoorraad, dus de gedachte om al dat werk op te geven is pijnlijk. Bird heeft een Bring Your Own IP (BYOIP) proces uitgewerkt dat dat probleem oplost. Als u ten minste één aaneengesloten /24 CIDR-blok hebt, kan Bird die bestaande IP's gebruiken voor levering, wat u de moeite bespaart om ze opnieuw op te warmen. Als u van die optie gebruik kunt maken, kunt u de sectie hier over IP-warmup overslaan.

Als u het gevoel heeft dat u hier klaar bent om te gaan, ga dan verder naar 'Making it happen'

Gebruikmakend van Optie #2 (on-prem pre-processing):

Als u echter bij team Optie #2 hoort, dan wilt u enkele configuratiewijzigingen aan uw implementatie toevoegen. De minst pijnlijke manier om enkele geselecteerde berichtstromen van Momentum of PMTA naar Bird te migreren terwijl u nog steeds SMTP-injectie van uw generatiesystemen gebruikt, is door een speciale route in uw configuratie toe te voegen.

Voor Momentum:

  1. Stel een versie van Momentum > 3.6.23 in. 

  2. Installeer een geldig SSL-certificaat en open uitgaande poort 587 zodat Momentum met Bird kan praten. Configureer een uitgaand domein zodat u een bericht via Momentum naar Bird kunt routeren. 

  3. Met de onderstaande configuratie wordt elk bericht dat deze configuratie raakt, gerouteerd naar smtp.sparkpostmail.com via poort 587 en SMTP_Auth met de daar gedefinieerde gebruikersnaam en wachtwoord.

    outbound_smtp_auth { }
    Keep_Message_Dicts_In_Memory = true
    Domain "smtp.sparkpostmail.com" {
      Remote_SMTP_Port = "587"
      Outbound_SMTP_AUTH_Type = "LOGIN"
      Outbound_SMTP_AUTH_user = "SMTP_Injection"
      Outbound_SMTP_AUTH_pass = "17258redacted8bd6cd7a8redacted8c22bce"
    }
  4. Configureer de bindings die u via MessageBird wilt doorsturen met TLS en leid ze naar het hierboven gedefinieerde domein.

    Opmerking:
    TLS is niet strikt vereist, maar wordt sterk aanbevolen. Als TLS om een of andere reden niet mogelijk is, dan is IP-whitelisting van de API-sleutels ook een sterke aanbeveling.


    binding "CustomerA-Outbound" {
      Gateway = "smtp-demo.sparkpostelite.com"
      TLS = "required"
      TLS_Certificate = "/etc/pki/tls/certs/trymsys.net.crt"
      TLS_Key = "/etc/pki/tls/certs/trymsys.net.key"
      TLS_Ciphers = "DEFAULT"
    }

Voor PowerMTA:

  1. Stel een versie van PowerMTA > 4.5.0 in

  2. Installeer een geldig SSL-certificaat en open uitgaande poort 587 zodat PowerMTA met Bird kan praten.

  3. Configureer een uitgaand domeinpad zodat u een bericht via PowerMTA naar Bird kunt routeren. Met de onderstaande configuratie wordt elk bericht dat deze configuratie raakt, gerouteerd naar smtp.sparkpostmail.com via poort 587 en SMTP_Auth met de daar gedefinieerde gebruikersnaam en wachtwoord.  In PowerMTA kunt u hier ook TLS instellen. Merk op dat dit ook uitgebreider wordt gedocumenteerd hier 

<domain sparkpost.rollup>
  use-unencrypted-plain-auth yes
  auth-username SMTP_Injection
  auth-password YourAPIKeygoesherewhenyougenerateit
  route smtp.sparkpostmail.com:587
  use-starttls yes
  require-starttls yes
  max-smtp-out 10
</domain>

4. Configureer de VMTAs die u via Bird wilt doorsturen met de {sparkpost} rollup-configuratie die u hierboven hebt gedefinieerd.

<virtual-mta SparkPostRelay>
  <domain *>
    queue-to {sparkpost}
  </domain>
</virtual-mta>

Na het aanbrengen van deze configuratiewijzigingen zouden alle berichten die naar de geselecteerde "binding" of "VMTA" worden verzonden, automatisch via Bird voor bezorging moeten worden gerouteerd.  

Het realiseren ervan

Wanneer je aan deze weg begint, maak dan niet de fout om te denken dat dit een snelle operatie is. Dit goed doen zal wat tijd en zorg vergen.

  1. Stel je Bird-account in en test volledig met behulp van een ontwikkelingssubaccount zodat je dat verkeer later kunt filteren. Je zult dit voor beide opties moeten doen omdat je de API-sleutel nodig zult hebben voor het SMTP_Auth-wachtwoord in elk geval.

  2. Als je SMTP-injectie gebruikt, plan dan om een X-MSYS-API header toe te voegen om alle benodigde metadata en berichtkenmerken op te nemen. Alle X-Headers moeten worden herschreven als metadata en je moet ook de ip_pool en campagnekenmerken opnemen. Een voorbeeld is beschikbaar hier

  3. Als je GEEN BYOIP gebruikt, moet je ervoor zorgen dat je licht verschillende verzenddomeinen instelt voor gebruik met MessageBird, zodat je beide omgevingen parallel kunt laten draaien zolang dat nodig is. Als je huidige verzenddomein mycompany.com is, stel dan misschien sp.mycompany.com specifiek in voor Bird levering. Dit stelt je in staat om langzaam en zorgvuldig te migreren zonder afbreuk te doen aan elk domein.

  4. Zorg ervoor dat je volledige domeinuitlijning en beveiligingsfuncties hebt ingeschakeld. Stel in DNS DKIM, SPF, DMARC, bounce- en trackingdomeinen in zodat ze allemaal lijken alsof ze tot dezelfde organisatie behoren.

  5. Configureer Automatic IP Warmup op je gedefinieerde IP_Pools. Als je de eerder genoemde BYOIP optie gebruikt, kun je de opwarmstap negeren.

  6. Begin met één berichtenstroom en ga daarvandaan verder. Net zoals IP Warmup, wil je dit niet in één keer doen. Leid eerst een paar honderd berichten om, dan 10% van het volume, dan 20% de volgende dag en verhoog totdat je het volledige volume hebt verplaatst. Als je een ESP bent, kies een klant waarmee je kunt werken en test het proces met hun feedback. Als alles goed werkt, ga dan verder naar de volgende. Als je problemen tegenkomt, neem de tijd om dit op te lossen en werk het in het proces voor de volgende keer.

  7. Automatiseer zoveel mogelijk met APIs. Buiten de DNS-wijzigingen kan de SparkPost-configuratie grotendeels worden geautomatiseerd met een paar API-oproepen.

Gegevensverzameling van Bird

MessageBird rapporteert berichtlevering in een webhooks feed of in de message events API. Het is gewoon niet mogelijk om Bird platte tekst logs te benaderen. Je kunt deze gegevens terughalen naar je omgeving met een webhooks collector of door periodiek de Events API aan te roepen en de gegevens te consumeren. We raden aan om webhooks te gebruiken en hebben enkele aanbevelingen voor het correct doen daarvan. In zijn meest eenvoudige vorm kan een PHP webhook collector in een paar regels code worden ingezet:

<?php
$verb = $_SERVER['REQUEST_METHOD'];
if ($verb === "POST") {
    $jsonStr = file_get_contents("php://input");
    http_response_code(200);
    $rnum = rand(1000, 9999);
    $timestamp = date("YmdHis") . $rnum;
    $filePath = './data/data_' . $timestamp . '.txt';
    // Handle duplicate filenames (edge case)
    if (file_exists($filePath)) {
        $baseName = basename($filePath, ".txt");
        $seq = 0;
        $ftail = substr($baseName, -2, 1);
        if ($ftail === "-") {
            $seq = (int)

Terwijl je experimenteert, kun je ze uitproberen met gratis collectors zoals http://webhook.site/.

Wanneer je alle webhookgegevens hebt verzameld, kun je deze in een datastore lezen voor verdere verwerking. Er zijn ook manieren om Webhooks door te sturen via diensten als StitchData en Segment.

Dezelfde informatie is beschikbaar in de Events API als je de gegevens moet PULLEN en geen PUSH-gegevens kunt accepteren. Hier is een voorbeeld van een Events API-aanroep:
GET https://api.sparkpost.com/api/v1/events/message?/

recipients=recipient@example.com&templates=my-template&events

Die API is volledig gedocumenteerd met voorbeelden hier: https://developers.sparkpost.com/api/events/#events-get-search-for-message-events

Als je echt de gebeurtenisgegevens terug nodig hebt in een vorm die lijkt op PMTA of Momentum loggin, is dat ook mogelijk als je wat extra conditioneringscode implementeert. Het goede nieuws is dat er al enkele voorbeelden zijn waar je van kunt stelen.

Samenvatting

Zorg ervoor dat je praat met je Sales- en Succesmanagementteam.  We hebben dit eerder gedaan en kunnen je er snel en kostenefficiënt doorheen helpen.

  1. Bekijk of je in Kamp #1 bent (in staat om volledig van On-Prem te verhuizen) of Kamp #2 (Nog steeds wat on-prem MTA nodig).

  2. Meld je aan voor een gratis testaccount om de integratiedetails te evalueren.

  3. Beslis over SMTP of REST API injectiemethoden.

  4. Als je SMTP-injectie gebruikt, kijk dan hoe je headergegevens en berichtattributen in een X-MSYS-API-header kunt krijgen.

  5. Bevestig of je ons BYOIP proces kunt gebruiken.

  6. Werk je DNS bij met nieuwe domeinen indien nodig.

  7. Bouw een kleine sample om je migratie te testen.  Mogelijk moet je je configuratie aanpassen.

  8. Verhoog het volume totdat al het verkeer is gemigreerd.

  9. Als je in Kamp #1 past, kun je eindelijk je on-prem MTA's uitschakelen nadat al het verkeer is gemigreerd.

Bij het plannen van DNS-wijzigingen voor e-mailsystemen met een hoog volume, wees je bewust van mogelijke AWS DNS-schalingsuitdagingen die de prestaties van e-mailbezorging op schaal kunnen beïnvloeden.

Laten we je in contact brengen met een Bird-expert.
Bekijk de volledige kracht van de Bird in 30 minuten.

Door te verzenden, ga je ermee akkoord dat Bird contact met je mag opnemen over onze producten en diensten.

U kunt zich op elk moment afmelden. Zie Bird's Privacyverklaring voor details over gegevensverwerking.

Nieuwsbrief

Blijf op de hoogte met Bird via wekelijkse updates in je inbox.

Laten we je in contact brengen met een Bird-expert.
Bekijk de volledige kracht van de Bird in 30 minuten.

Door te verzenden, ga je ermee akkoord dat Bird contact met je mag opnemen over onze producten en diensten.

U kunt zich op elk moment afmelden. Zie Bird's Privacyverklaring voor details over gegevensverwerking.

Nieuwsbrief

Blijf op de hoogte met Bird via wekelijkse updates in je inbox.

Laten we je in contact brengen met een Bird-expert.
Bekijk de volledige kracht van de Bird in 30 minuten.

Door te verzenden, ga je ermee akkoord dat Bird contact met je mag opnemen over onze producten en diensten.

U kunt zich op elk moment afmelden. Zie Bird's Privacyverklaring voor details over gegevensverwerking.

R

Bereik

G

Grow

M

Manage

A

Automate

Nieuwsbrief

Blijf op de hoogte met Bird via wekelijkse updates in je inbox.