Bereik

Grow

Manage

Automate

Bereik

Grow

Manage

Automate

Implementatie van Signal voor On-Premises: PowerMTA-integratie

Bird

30 aug 2019

E-mail

1 min read

Implementatie van Signal voor On-Premises: PowerMTA-integratie

Bird

30 aug 2019

E-mail

1 min read

Implementatie van Signal voor On-Premises: PowerMTA-integratie

Laten we ons verdiepen in de details van het instellen van PowerMTA voor SparkPost Signals.

Laten we in de details duiken van het instellen van PowerMTA voor SparkPost Signals. U heeft het volgende nodig:

  • Een host om de nieuwste versie van PowerMTA op te draaien – ofwel nieuw, of een bestaande machine

  • Een SparkPost-account met API-sleuteltoestemming voor “Incoming Events: Write” zoals hier beschreven

We zullen PowerMTA instellen om evenementen naar uw SparkPost-account te streamen, waarna u het volgende kunt gebruiken:

Ten eerste, installeer (of upgrade) naar PowerMTA 5.0 r4 of later, volgens de gebruikelijke v5.0 installatiefinstructies die vrij eenvoudig zijn. Vervolgens doorlopen we de volgende stappen:

  • Configureer PowerMTA-connector naar SparkPost Signals

  • Stel Engagement Tracking in met een aangepast trackingdomein

  • Selecteer welke PowerMTA-verkeersstromen gerapporteerd moeten worden aan Signals

  • Testen of uw evenementen Signals bereiken

  • Herzie hoe u zinvolle namen kunt gebruiken die goed worden weergegeven in rapportages.

We zullen ook de andere specifieke PowerPMTA-instellingsaspecten behandelen die in onze Signals-demo worden gebruikt:

  • FBL-evenementen (spamklachten) en externe (out-of-band) bounces

  • Injectieconfiguratie, inclusief DKIM

  • FBL- en OOB-configuratie

  • VirtualMTA-installatie en naamgeving (en hoe dit in uw SparkPost Signals-rapporten verschijnt)

Tot slot, er is een “bonusfunctie” met code om ervoor te zorgen dat uw campagnenamen compatibel zijn met PowerMTA X-Job  naamconventies.

Configureer PowerMTA-connector

De Signals-configuratie wordt beschreven in de 5.0 User Guide sectie 10.1. Hier beginnen we met “Use Case #2”, die Signals inschakelt voor al het verkeer van deze PowerMTA-host en SparkPost betrokkenheidsregistratie inschakelt.

# # SparkPost Signals # <signals> api-key ##mijn ingest API sleutel hier## upload-url https://api.sparkpost.com/api/v1/ingest/events log-verbose true min-free-space 1G engagement-tracking sparkpost # dit schakelt de open en click-tracking in PowerMTA in klant-id 123 # Uw SparkPost-accountnummer hier </signals> enable-signals true

Hier is wat elk attribuut doet:

api-key

Dit is uniek voor uw SparkPost-account, het is de waarde die u eerder van SparkPost heeft gekregen.

upload-url

Dit moet overeenkomen met het adres van uw SparkPost API-dienst, of het nu US of EU is. Voor meer informatie zie hier. De gebruikelijke waarden zijn:

SparkPost (VS): https://api.sparkpost.com/api/v1/ingest/events

SparkPost EU:    https://api.eu.sparkpost.com/api/v1/ingest/events

log-verbose

Deze richtlijn is optioneel en geeft, wanneer ingeschakeld, iets meer informatie in het pmta.log bestand, wat nuttig kan zijn tijdens de setup om te bevestigen dat alles correct werkt. Elke minuut, zelfs wanneer er geen verkeer is, ziet u:

2019-07-26 11:47:57 Signals: 0 bestanden ontdekt

Met verkeer ziet u iets zoals:

2019-07-26 11:50:57 Signals: sp1-0000000000003FBD.json ontdekt 2019-07-26 11:50:57 Signals: sp1-0000000000003FBD.json succesvol overgedragen. 2019-07-26 11:50:57 Signals: Ontdekte 1 bestand, 1 bestand succesvol overgedragen

min-free-space

Dit vertelt PowerMTA de schijfruimtedrempel waarbij het de oudste SparkPost JSON-gebeurtenisbestanden moet beginnen te verwijderen om ruimte vrij te maken voor nieuwe bestanden wanneer de schijfruimte laag is.

enable-signals

Dit vertelt PowerMTA om naar Signals te uploaden, in dit geval wereldwijd voor al het verkeer (meer info hier, voor v5.0). U kunt selectiever zijn over welke verkeersstromen u wilt uploaden als u dat wilt.

U kunt ook specifiek PowerMTA-verkeer markeren om gerapporteerd te worden als behorend tot een SparkPost subaccount – dit is een andere manier om een specifieke verkeersstroom van de andere te onderscheiden.

engagement-tracking, klant-id
De betrokkenheidsregistratieoplossing van PowerMTA gebruikt standaard het trackingdomein voor de door SparkPost geïnhostte service in de VS. U geeft uw numerieke SparkPost-klant-ID op; hier zijn instructies om het te vinden.

tracking-domein

Voor SparkPost EU-accounts, voeg de volgende regel toe:

tracking-domein pmta.eu.spgo.io # dit is het eindpunt voor SparkPost EU

Aangepast trackingdomein

Als u liever uw eigen trackingdomein wilt gebruiken (dit is beter vanuit deliverability perspectief), doe dan het volgende:

  • Maak een trackingdomein aan met uw DNS-provider door het aanmaken van een CNAME-record. Dit zal meestal een subdomein zijn van uw hoofddomein, bijv. track.mycompany.com .

track.mycompany.com CNAME pmta.spgo.io # als u een SparkPost US-account heeft track.mycompany.com CNAME pmta.eu.spgo.io # als u een SparkPost EU-account heeft

U kunt ook HTTPS-trackingdomeinen gebruiken, hoewel dit ingewikkelder is (zie SparkPost-configuratiestappen hier).

  • Registreer het trackingdomein in uw SparkPost-account, en verifieer het. Wacht een paar minuten voordat u dit probeert, om uw DNS-wijzigingen de tijd te geven om door het internet te verspreiden, afhankelijk van uw DNS-provider.

  • Configureer PowerMTA om dat domein te gebruiken in plaats van de standaard, met

tracking-domein yourdomain.com # Zet hier uw eigen domein

U kunt controleren of uw afgeleverde e-mails “open pixels” hebben toegevoegd en de links zijn omwikkeld, door naar de interne inhoud van de mail te kijken (in Gmail, gebruik het menu rechtsboven en kies “Sla origineel weer”).

Show original option highlighted


U zult merken dat de open pixels aan het begin en einde van de HTML in de e-mail staan. Elke HTML-link is ook gewijzigd om REF  te laten verwijzen naar het trackingdomein.

HTML code highlighted


Dat is alles wat u nodig heeft om SparkPost Signals te laten werken met PowerMTA's ingebouwde Engagement Tracking.

Voorkomen dat specifieke links in uw html-e-mail worden gevolgd

U kunt voorkomen dat PowerMTA specifieke links volgt, door de aangepaste eigenschap data-msys-clicktrack  in te stellen op “0”  :

<a href="#" data-msys-clicktrack="0">Voorbeeld</a>

PowerMTA zal de link niet omwikkelen. Het zal ook dat attribuut verwijderen voordat het bericht naar uw ontvanger wordt verzonden.

Selecteer welke PowerMTA-verkeersstromen moeten worden gerapporteerd aan Signals

Je kunt Signaleren selecteren om actief te zijn:

  • Globaal (dit is wat we gebruikten in het bovenstaande voorbeeld)

  • Voor sommige Virtuele MTAs en niet voor anderen

  • Voor sommige Virtuele MTA-pools en niet voor anderen

  • Voor specifieke "Sender" of "From" adressen die door PowerMTA worden doorgestuurd, in combinatie met de selectie voor Virtuele MTA / Virtuele MTA-pool

Deze configuratie is zeer krachtig en wordt geïllustreerd door een reeks voorbeeldgebruikcases (v5.0) in de Handleiding.

Je kunt Signaleren selecteren om actief te zijn:

  • Globaal (dit is wat we gebruikten in het bovenstaande voorbeeld)

  • Voor sommige Virtuele MTAs en niet voor anderen

  • Voor sommige Virtuele MTA-pools en niet voor anderen

  • Voor specifieke "Sender" of "From" adressen die door PowerMTA worden doorgestuurd, in combinatie met de selectie voor Virtuele MTA / Virtuele MTA-pool

Deze configuratie is zeer krachtig en wordt geïllustreerd door een reeks voorbeeldgebruikcases (v5.0) in de Handleiding.

Je kunt Signaleren selecteren om actief te zijn:

  • Globaal (dit is wat we gebruikten in het bovenstaande voorbeeld)

  • Voor sommige Virtuele MTAs en niet voor anderen

  • Voor sommige Virtuele MTA-pools en niet voor anderen

  • Voor specifieke "Sender" of "From" adressen die door PowerMTA worden doorgestuurd, in combinatie met de selectie voor Virtuele MTA / Virtuele MTA-pool

Deze configuratie is zeer krachtig en wordt geïllustreerd door een reeks voorbeeldgebruikcases (v5.0) in de Handleiding.

Testen of je evenementen Signals bereiken

Hier is een weergave van SparkPost Signals, verbonden met PowerMTA. Je kunt zien dat de gezondheidsscore varieert.

Health score dashboard


De Campagnenamen zijn beschikbaar als rapportage-facetten, samen met Subaccount, IP Pool, Mailbox Provider, en Sending Domain.

Naast het bekijken van de PowerMTA logs, kun je controleren of de evenementengegevens SparkPost bereiken door naar het Signals Integration scherm te kijken.

Signals integration screen

In je SparkPost Evenementen Zoeken scherm, zou je evenementen binnen een paar minuten moeten zien verschijnen. Deze bevatten Injectie en Bezorging evenementen, evenals Bounce, en mogelijk Out-of-Band Bounce en Spam Klacht evenementen, als je PowerMTA al hebt geconfigureerd om dat voor je af te handelen.
Als je Betrokkenheid Volgen hebt ingeschakeld, zie je ook open, initial_open, en click evenementen.

Gebruik betekenisvolle namen die goed zichtbaar zijn in rapportages

Het instellen van de PowerMTA VirtualMTA Pool namen en Job namen zodat ze betekenisvol en leesbaar zijn, is zeker de moeite waard. Deze verschijnen rechtstreeks in je SparkPost Signals-facetten en het Samenvatting-rapport.

Zoals eerder vermeld, hoef je deze pools niet in je SparkPost-account aan te maken. SparkPost haalt ze op uit je PowerMTA-configuratie.

Hier is hoe PowerMTA-configuratietermen vertalen naar SparkPost-termen.

PowerMTA termSparkPost Reports / Signals termOntvanger Domein
(domeingedeelte van het “rcpt”-veld in het Accounting-bestand).Ontvanger DomeinHet domeingedeelte van de “Sender” of “From” header in het bericht dat door PowerMTA wordt doorgestuurd.
(domeingedeelte van “orig” in Accounting-bestand).Verzendend DomeinVirtualMTA (naam)—VirtualMTA Pool (naam)
(“vmtaPool” in accounting-bestand)IP Pool (naam)smtp-bron-host a.b.c.d
(“dlvSourceIp” in accounting-bestand)Verzendend IP a.b.c.dJob (naam)
(“jobId” in accounting-bestand)Campagne ID (naam)—Template (naam)“Subaccount” is geen inheems PowerMTA-concept.

PowerMTA kan echter virtualMTAs, virtual MTA Pools of Sender-or-From domeinen taggen met een subaccount ID voor het SparkPost rapportagedoeleinden.

Subaccount ID (nummer)FBL (evenement)Spam Klacht (evenement)Remote Bounce (evenement)Out-of-Band bounce (evenement)

Het instellen van ten minste één smtp-bron-host  adres stelt SparkPost ook in staat om het verzendende IP-adres correct te identificeren zodat het verschijnt bij Injectie- en Bezorgingsevenementen, evenals in de Samenvatting-rapportweergave.

Job namen worden ingesteld in PowerMTA via een header in het geïnjecteerde bericht. Naast het mogelijk maken van individuele jobcontrole (pauzeren/hervatten enz.) die op zichzelf nuttig is, geeft PowerMTA de namen door aan SparkPost Signals rapportage als “campagne ID”. Zie Gebruikershandleiding v5.0 sectie 12.8 “Het bijhouden van een campagne in PowerMTA met een JobID”.

Er zijn een paar dingen om rekening mee te houden met betrekking tot jobbenaming. Terwijl SparkPost (met JSON-formaat en JSON-escaping) tekens zoals <SPATIE>  in campagnenamen toestaat, zijn e-mailkoppen restrictiever. Geldige karakters toegestaan in de X-Job  header zijn:

A-Za-z0-9!#$%&'()*+,-./:;<=>?@[\]^_{|}~ 

Met andere woorden, niet-toegestane karakters omvatten <SPATIE>, dubbele aanhalingstekens “  en backtick `. Als je gewend bent te werken met X-Job namen, zal dit niet verrassend zijn, en je campagne ID-namen zullen “gewoon werken” op SparkPost rapportage. Als je, net als ik, SparkPost eerst hebt geleerd, wil je misschien een tool hebben om ervoor te zorgen dat je X-Job-waarden veilig zijn; zie de bonusfunctie aan het einde van dit artikel.

FBL gebeurtenissen (Spam Klachten) en externe (out-of-band) bounces

PowerMTA kan FBL-gebeurtenissen ontvangen en verwerken (bekend in SparkPost als Spamklacht-gebeurtenissen) en externe bounces (bekend in SparkPost als out-of-band bounces, omdat het antwoord enige tijd later terugkomt, in plaats van tijdens de SMTP-sessie).

Er zijn artikelen in het Port25 Support Forum over hoe je de Bounce Processor en de FBL Processor instelt. Als je al een PowerMTA-gebruiker bent, heb je deze waarschijnlijk al.

Hier is de configuratie die ik voor een demo heb gemaakt, gebaseerd op deze artikelen en gericht op het hosten van PowerMTA in Amazon EC2.

Als je bekend bent met PowerMTA-configuratie in dit gebied, kun je dit gedeelte overslaan tot aan de volgende horizontale lijn.

Injectieconfiguratie

We gebruiken poort 587 voor geïnjecteerde berichten, die via het publieke internet vanaf een andere host zullen binnenkomen. We moeten voorkomen dat kwaadwillenden deze service ontdekken en misbruiken, dus we passen gebruikersnaam/wachtwoordauthenticatie toe en optionele TLS, vergelijkbaar met SparkPost SMTP-injectie-eindpunten.

We willen in staat zijn om berichten te verzenden van bronnen die correct zijn geauthenticeerd naar elke bestemming. We willen ook een aparte luisteraar op poort 25 voor FBL en externe bounce-antwoorden die geen authenticatie vereisen.

# # IP-adres(sen) en poort(en) waarop geluisterd moet worden voor inkomende SMTP-verbindingen # smtp-listener 0.0.0.0:587 smtp-listener 0.0.0.0:25

In de volgende <source>  verklaringen, gebruiken we gebruikersnaam/wachtwoordauthenticatie en optionele TLS om ons te verdedigen tegen malafide berichtinjectie. We stellen ook snelheidslimieten in op verbindingen die mislukte wachtwoordpogingen doen.

Uw setup kan anders zijn; bijvoorbeeld, als u een privénetwerk heeft tussen injector en PowerMTA, heeft u geen wachtwoordauthenticatie nodig.

# Eén bronregel voor alle injecties, intern of extern. Handhaaf auth, behalve voor bounces en FBLs # <source 0/0> log-connections false log-commands false # WAARSCHUWING: gedetailleerd! alleen voor ontwikkeling log-data false # WAARSCHUWING: nog gedetailleerder! smtp-service true # sta SMTP-service toe smtp-max-auth-failure-rate 1/min allow-unencrypted-plain-auth false allow-starttls true rewrite-list mfrom </source> <source {auth}> altijd-verderzenden-allowen ja # alleen als de auth slaagt default-virtual-mta default process-x-job true </source>

De <source {auth}>  verklaring (zie hier. v5.0) geldt zodra authenticatie is geslaagd. Hier staat het doorzenden toe, stelt de standaardvirtuele MTA-groep in om te gebruiken, en voegt de X-Job-header toe (die door SparkPost Signals als campaign_id zal worden gerapporteerd).

De rewrite-list koppelt geïnjecteerde berichten om een specifieke MAIL FROM-domein te gebruiken (ook wel bounce-domein of Retourpad: genoemd).

# # Schrijf het MAIL FROM-adres om dat overeenkomt met het bounce-domein # <rewrite-list mfrom> mail-from *@pmta.signalsdemo.trymsys.net *@bounces.pmta.signalsdemo.trymsys.net </rewrite-list>

Vervolgens stellen we onze TLS-configuratie en SMTP-gebruikersnaam/wachtwoord in, volgens de huidige aanbevelingen.

# # Beveilig de inkomende service met gebruikersnaam, wachtwoord en TLS. SMT 2020-06-15 # smtp-server-tls-certificate /etc/pmta/pmtasignalsdemo.pem smtp-server-tls-allow-tlsv1 false smtp-server-tls-allow-tlsv1.1 false smtp-server-tls-allow-tlsv1.2 true smtp-server-tls-allow-tlsv1.3 true # # SMTP-gebruikers (geauthenticeerd via SMTP AUTH) # <smtp-user SMTP_Injection> wachtwoord ##ZET HIER JE WACHTWOORD## authenticatiemethode wachtwoord </smtp-user>

We kunnen controleren dat de (onveilige, verouderde) TLS v1.0 niet wordt geaccepteerd met mijn favoriete SMTP-testtool, swaks.

swaks --server pmta.signalsdemo.trymsys.net --port 587 --to test@trymsys.net --from any@sparkpost.com --tls --tls-protocol tlsv1

We zien:

*** TLS-opstarten mislukt (connect(): fout:00000000:lib(0):func(0):reason(0)) *** STARTTLS geprobeerd maar mislukt

Eveneens voor –tls-protocol tlsv1_1.

Laten we ook DKIM-ondertekening toepassen op onze uitgaande berichten, want dat is een goede praktijk (ik volgde deze instructies om de sleutel in te stellen).

# # DKIM # domain-key mypmta, pmta.signalsdemo.trymsys.net, /etc/pmta/mypmta.pmta.signalsdemo.trymsys.net.pem

FBL en OOB configuratie

Nu .. eindelijk .. verklaren we welke specifieke domeinen openstaan voor externe bounce- en FBL-reacties. We willen deze nergens naar doorsturen (om backscatter-aanvallen te voorkomen), alleen deze reacties intern verwerken.

# # Bounce- en FBL-verwerking inschakelen op specifieke domeinen # relay-domein pmta.signalsdemo.trymsys.net relay-domein bounces.pmta.signalsdemo.trymsys.net relay-domein fbl.pmta.signalsdemo.trymsys.net <bounce-processor> ongeleverde e-mail niet bezorgen geleverde e-mail niet bezorgen <address-list> domein pmta.signalsdemo.trymsys.net domein bounces.pmta.signalsdemo.trymsys.net </address-list> </bounce-processor> <feedback-loop-processor> ongeleverde e-mail niet bezorgen geleverde e-mail niet bezorgen <address-list> domein fbl.pmta.signalsdemo.trymsys.net </address-list> </feedback-loop-processor>

Je kunt zien dat ik twee bounce-domeinen heb ingesteld, omdat ik aan het experimenteren was met het wel of niet gebruiken van de mfrom herschrijvingsregel.

Het FBL-domein wordt meestal geregistreerd bij externe services zoals Microsoft SNDS; zie dit artikel voor meer informatie. Voor deze demo zullen de FBL's afkomstig zijn van de Bouncy Sink, dus registratie is niet nodig.

Testen van de SMTP-listener

Het is belangrijk om te testen dat uw SMTP-listener autorisatie vereist voor alle algemene bestemmingen, en alle berichten afwijst die niet specifiek gericht zijn aan de FBL- en remote-bounce-domeinen.

swaks --server pmta.signalsdemo.trymsys.net --port 25 --to test@strange.pmta.signalsdemo.trymsys.net --from any@sparkpost.com

De reactie, zoals verwacht, toont aan dat het doorsturen is geweigerd:

550 5.7.1 doorsturen geweigerd voor ontvanger in "RCPT TO:<test@strange.pmta.signalsdemo.trymsys.net>

(Einde van demoinstallatiebeschrijving).

VirtualMTA setup en naamgeving

PowerMTA VirtualMTAs (en VirtualMTA-pools) zijn krachtige functies voor het beheren van berichtstromen, en PowerMTA / SparkPost Signals rapportagefuncties werken het beste met deze actief.

# # Leid al het uitgaand verkeer door deze virtuele mta / pool. # Verklaar hier het bezorg-IP-adres, zodat SparkPost signalen injectie (ook bekend als "ontvangst") gebeurtenissen correct de sending_IP-attribuut # <virtual-mta mta1>     smtp-source-host 172.31.25.101 pmta.signalsdemo.trymsys.net </virtual-mta> <virtual-mta-pool default>     virtual-mta mta1     <domain *>         max-smtp-out    20       # max. verbindingen *per domein*         bounce-after    4d12u    # 4 dagen, 12 uur         retry-after     10m      # 10 minuten         dkim-sign       ja     </domain> </virtual-mta-pool>

De instelling virtual-mta-pool wordt in SparkPost gerapporteerd als “IP Pool”, en is beschikbaar als een SparkPost Signals rapportagefacet (het dropdownmenu onder de grafieken).

Health score dashboard


Het Samenvattingsrapport toont ook IP Pool als een “Groeperen op” rapportagefacet.

Summary report dashboard


Zoals eerder in dit artikel opgemerkt, maakt het instellen van ten minste één smtp-source-host adres het ook mogelijk voor SparkPost om het verzend-IP-adres correct te identificeren, zodat het verschijnt bij Injectie- en Bezorggebeurtenissen, en in het Samenvattingsrapport:

Summary report with the group by filter set to "Sending IP"

Dat is alles wat je nodig hebt om een basisintegratie tussen PowerMTA en SparkPost Signals werkend te krijgen. Je vindt het volledige configuratievoorbeeld hier.

Voordat je gaat, hier is het bonuskenmerk dat ik noemde.

Bonusfunctie: X-Job naam controleren/filteren

Om ervoor te zorgen dat elke tekenreeks veilig is voor gebruik als een PowerMTA X-Job-naam, hier is een eenvoudige Python-functie om eventuele onveilige tekens naar een underscore "_" te transformeren.

import re def pmtaSafeJobID(s): """ :param s: str :return: str Map een willekeurige campagne-ID-tekenreeks naar toegestane tekens voor de PMTA X-Job header. Zie https://download.port25.com/files/UsersGuide-5.0.html#tracking-a-campaign-in-powermta-with-a-jobid Specifiek niet toestaan <sp>, " ` maar de meeste andere tekens wel toestaan. """ # Opmerking moet ' - [ ] ontsnappen en dubbel-ontsnappen \ - zie https://docs.python.org/3/library/re.html disallowedChars = '[^A-Za-z0-9!#$%&\'()*+,\-./:;<=>?@\[\\\\\]^_{|}~]' return re.sub(disallowedChars, '_', s)

Dit gebruikt Python-reguliere expressies op een specifieke manier. Het definieert de set van niet-toegestane karakters met behulp van de "setcomplement" operator ^ in plaats van alle toegestane tekens op te sommen. Dat betekent dat we tekens buiten de gebruikelijke 7-bits set vangen (en veilig maken). We kunnen dat laten zien met dit testfragment:

s='' for i in range(32, 256): s += chr(i) print(pmtaSafeJobID(s))

Geeft

_!_#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^__abcdefghijkl mnopqrstuvwxyz{|}~___________________________________________________________ ______________________________________________________________________

Je kunt zien dat <SPACE>, dubbele aanhalingstekens “, en backtick `, evenals alle tekens voorbij ~ worden omgezet in een underscore.

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.