Bereik

Grow

Manage

Automate

Bereik

Grow

Manage

Automate

S/MIME Deel 2: Ondertekend, verzegeld en bezorgd via SparkPost

E-mail

1 min read

S/MIME Deel 2: Ondertekend, verzegeld en bezorgd via SparkPost

E-mail

1 min read

S/MIME Deel 2: Ondertekend, verzegeld en bezorgd via SparkPost

In deel 1 hebben we een snelle rondleiding gehad van S/MIME, waarbij we keken naar het ondertekenen en versleutelen van onze berichtenstromen over een reeks e-mailclients. S/MIME-berichten kunnen worden ondertekend (wat bewijs geeft van de identiteit van de afzender), versleuteld (waardoor de inhoud van het bericht geheim blijft), of beide.

Diagram illustrating email security layers showing the relationship between S/MIME signing, S/MIME encryption, and TLS connections in the email delivery process from message source through email server to recipient.

In deze aflevering gaan we:

  • Een paar eenvoudige opdrachtregelhulpmiddelen installeren voor het ondertekenen en versleutelen van e-mail

  • Uw verzendersleutel / certificaat verkrijgen voor ondertekening

  • Een ondertekend bericht verzenden via SparkPost en het ontvangen bericht bekijken

  • Optioneel, het certificaat van uw ontvanger verkrijgen voor versleuteling

  • Een ondertekend en versleuteld bericht verzenden via SparkPost en het ontvangen bericht bekijken

  • Een handige standalone tool "mimeshow" proberen om het interne e-mailbestand te bekijken.

OK – laten we beginnen!

1. Installeer de tools

De demonstratietools bevinden zich in Github hier, compleet met installatie-instructies. U merkt misschien het 'build passing'-logo op – Travis en pytest controleren automatisch de buildstatus. Let op: deze tools worden niet officieel ondersteund door SparkPost, maar ik heb geprobeerd ze robuust en gebruiksvriendelijk te maken.

Als u enige bekendheid heeft met Python en pip, zou de installatie u vrij bekend moeten voorkomen. De Pipfile zorgt automatisch voor de externe afhankelijkheden. Zodra het klaar is, kunt u controleren of alles is geïnstalleerd door

./sparkpostSMIME.py -h

te draaien. U zou de vriendelijke hulktekst moeten zien. Vervolgens moeten we…

2. Haal uw verzendersleutel / certificaat op voor ondertekening

Als je al een sleutelbestand hebt voor je verzendidentiteit, kun je dit overslaan. Anders zijn hier twee opties om uit te kiezen:

a) Zelfondertekende testsleutel / certificaat (niet extern geldig)

Als je alleen aan het testen bent, kun je “zelf ondertekende” certificaten en sleutels maken voor een e-mailadres met de opdrachtregeltool openssl op Linux, met een procedure zoals deze. Aan het einde van dat proces heb je een smime.p12-bestand. Hernoem dit bestand zodat het overeenkomt met je verzendidentiteit, inclusief het @-teken, bijvoorbeeld, alice@example.com.p12 .

of

b) Extern geldige sleutels / certificaten

Als je extern geldige sleutels / certificaten wilt krijgen waarmee je kunt ondertekenen, is er een lijst van aanbieders hier. Ik vond Comodo goed werken (gratis voor niet-commercieel gebruik), en het is eenvoudiger dan de hierboven beschreven zelfondertekeningsprocedure. Volg het aanmeldproces, ontvang je validatiemail en zorg ervoor dat je de link opent in Firefox. Ga naar Firefox Voorkeuren / Privacy en Beveiliging. Scroll naar Certificaten / Certificaten bekijken:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Selecteer je certificaat en gebruik de “Back-up” optie om als een bestand in PKCS12-formaat op te slaan (voeg de bestandsextensie .p12 toe aan je bestandsnaam) die de privésleutel en de openbare certificaatketen bevat.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Geef een wachtwoord om het .p12-bestand te beveiligen:

Certificate backup password entry dialog with password fields and strength meter


Genereer aparte openbare (.crt) en private (.pem) sleutelbestanden

Of je nu a) of b) gebruikte, je hebt nu een .p12-bestand voor je verzenderidentiteit. Dat is een grote stap vooruit – neem nu een koffie!

Nu moeten we aparte openbare en private sleutelbestanden genereren zoals dit – vervang daarbij je eigen e-mailadres in plaats van het voorbeeld. (Mac OSX en Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Je moet het wachtwoord invoeren dat je eerder hebt verstrekt. Let op dat die backslashes \ worden gebruikt om het @-teken te ontsnappen – niet om de namen van een pad in een directory te scheiden (dat is een schuine streep / op Mac OSX en Linux).

Als je Windows gebruikt, zijn er openssl-implementaties beschikbaar zoals de MINGW64 die is ingebouwd in de Git command-line tools, maar ik vond dat het vaak gewoon vastloopt. Je zult het waarschijnlijk gemakkelijker en sneller vinden om dit op Linux te doen en dan je bestanden over te kopiëren. Diezelfde Git-tools voor Windows worden geleverd met een mooie ssh-client die je kunt gebruiken om in te loggen op een Linux-box, zoals een Amazon EC2-instance.


2.1 Een bericht ondertekenen

Er is al een dummy sleutel/certificaat en e-mailbronbestand in de testdirectory voor alice@example.com, zodat je enige output kunt krijgen zelfs voordat je je eigen sleutels hebt. Typ gewoon het volgende:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

En je krijgt:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Je kunt eigenlijk geen e-mails versturen vanaf example.com via SparkPost tenzij je dat domein bezit, dus de volgende stap is om je eigen sleutel te gebruiken en een ondertekend bericht te versturen vanaf je eigen domein.

Als je al een sleutelbestand hebt voor je verzendidentiteit, kun je dit overslaan. Anders zijn hier twee opties om uit te kiezen:

a) Zelfondertekende testsleutel / certificaat (niet extern geldig)

Als je alleen aan het testen bent, kun je “zelf ondertekende” certificaten en sleutels maken voor een e-mailadres met de opdrachtregeltool openssl op Linux, met een procedure zoals deze. Aan het einde van dat proces heb je een smime.p12-bestand. Hernoem dit bestand zodat het overeenkomt met je verzendidentiteit, inclusief het @-teken, bijvoorbeeld, alice@example.com.p12 .

of

b) Extern geldige sleutels / certificaten

Als je extern geldige sleutels / certificaten wilt krijgen waarmee je kunt ondertekenen, is er een lijst van aanbieders hier. Ik vond Comodo goed werken (gratis voor niet-commercieel gebruik), en het is eenvoudiger dan de hierboven beschreven zelfondertekeningsprocedure. Volg het aanmeldproces, ontvang je validatiemail en zorg ervoor dat je de link opent in Firefox. Ga naar Firefox Voorkeuren / Privacy en Beveiliging. Scroll naar Certificaten / Certificaten bekijken:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Selecteer je certificaat en gebruik de “Back-up” optie om als een bestand in PKCS12-formaat op te slaan (voeg de bestandsextensie .p12 toe aan je bestandsnaam) die de privésleutel en de openbare certificaatketen bevat.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Geef een wachtwoord om het .p12-bestand te beveiligen:

Certificate backup password entry dialog with password fields and strength meter


Genereer aparte openbare (.crt) en private (.pem) sleutelbestanden

Of je nu a) of b) gebruikte, je hebt nu een .p12-bestand voor je verzenderidentiteit. Dat is een grote stap vooruit – neem nu een koffie!

Nu moeten we aparte openbare en private sleutelbestanden genereren zoals dit – vervang daarbij je eigen e-mailadres in plaats van het voorbeeld. (Mac OSX en Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Je moet het wachtwoord invoeren dat je eerder hebt verstrekt. Let op dat die backslashes \ worden gebruikt om het @-teken te ontsnappen – niet om de namen van een pad in een directory te scheiden (dat is een schuine streep / op Mac OSX en Linux).

Als je Windows gebruikt, zijn er openssl-implementaties beschikbaar zoals de MINGW64 die is ingebouwd in de Git command-line tools, maar ik vond dat het vaak gewoon vastloopt. Je zult het waarschijnlijk gemakkelijker en sneller vinden om dit op Linux te doen en dan je bestanden over te kopiëren. Diezelfde Git-tools voor Windows worden geleverd met een mooie ssh-client die je kunt gebruiken om in te loggen op een Linux-box, zoals een Amazon EC2-instance.


2.1 Een bericht ondertekenen

Er is al een dummy sleutel/certificaat en e-mailbronbestand in de testdirectory voor alice@example.com, zodat je enige output kunt krijgen zelfs voordat je je eigen sleutels hebt. Typ gewoon het volgende:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

En je krijgt:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Je kunt eigenlijk geen e-mails versturen vanaf example.com via SparkPost tenzij je dat domein bezit, dus de volgende stap is om je eigen sleutel te gebruiken en een ondertekend bericht te versturen vanaf je eigen domein.

Als je al een sleutelbestand hebt voor je verzendidentiteit, kun je dit overslaan. Anders zijn hier twee opties om uit te kiezen:

a) Zelfondertekende testsleutel / certificaat (niet extern geldig)

Als je alleen aan het testen bent, kun je “zelf ondertekende” certificaten en sleutels maken voor een e-mailadres met de opdrachtregeltool openssl op Linux, met een procedure zoals deze. Aan het einde van dat proces heb je een smime.p12-bestand. Hernoem dit bestand zodat het overeenkomt met je verzendidentiteit, inclusief het @-teken, bijvoorbeeld, alice@example.com.p12 .

of

b) Extern geldige sleutels / certificaten

Als je extern geldige sleutels / certificaten wilt krijgen waarmee je kunt ondertekenen, is er een lijst van aanbieders hier. Ik vond Comodo goed werken (gratis voor niet-commercieel gebruik), en het is eenvoudiger dan de hierboven beschreven zelfondertekeningsprocedure. Volg het aanmeldproces, ontvang je validatiemail en zorg ervoor dat je de link opent in Firefox. Ga naar Firefox Voorkeuren / Privacy en Beveiliging. Scroll naar Certificaten / Certificaten bekijken:

Firefox browser settings page showing certificate management options under the Privacy & Security section, with controls for how the browser handles personal certificate requests.


Selecteer je certificaat en gebruik de “Back-up” optie om als een bestand in PKCS12-formaat op te slaan (voeg de bestandsextensie .p12 toe aan je bestandsnaam) die de privésleutel en de openbare certificaatketen bevat.

Certificate Manager window showing a list of software security device certificates from COMODO CA Limited, with details including certificate names and serial numbers


Geef een wachtwoord om het .p12-bestand te beveiligen:

Certificate backup password entry dialog with password fields and strength meter


Genereer aparte openbare (.crt) en private (.pem) sleutelbestanden

Of je nu a) of b) gebruikte, je hebt nu een .p12-bestand voor je verzenderidentiteit. Dat is een grote stap vooruit – neem nu een koffie!

Nu moeten we aparte openbare en private sleutelbestanden genereren zoals dit – vervang daarbij je eigen e-mailadres in plaats van het voorbeeld. (Mac OSX en Linux):

openssl pkcs12 -in alice\@example.com.p12 -clcerts -nokeys -out alice\@example.com.crt openssl pkcs12 -in alice\@example.com.p12 -nocerts -nodes -out alice\@example.com.pem

Je moet het wachtwoord invoeren dat je eerder hebt verstrekt. Let op dat die backslashes \ worden gebruikt om het @-teken te ontsnappen – niet om de namen van een pad in een directory te scheiden (dat is een schuine streep / op Mac OSX en Linux).

Als je Windows gebruikt, zijn er openssl-implementaties beschikbaar zoals de MINGW64 die is ingebouwd in de Git command-line tools, maar ik vond dat het vaak gewoon vastloopt. Je zult het waarschijnlijk gemakkelijker en sneller vinden om dit op Linux te doen en dan je bestanden over te kopiëren. Diezelfde Git-tools voor Windows worden geleverd met een mooie ssh-client die je kunt gebruiken om in te loggen op een Linux-box, zoals een Amazon EC2-instance.


2.1 Een bericht ondertekenen

Er is al een dummy sleutel/certificaat en e-mailbronbestand in de testdirectory voor alice@example.com, zodat je enige output kunt krijgen zelfs voordat je je eigen sleutels hebt. Typ gewoon het volgende:

cd tests ../sparkpostSMIME.py example_email1.eml --sign

En je krijgt:

To: Bob <bob@example.com> 
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/x-pkcs7-mime; smime-type=signed-data; name="smime.p7m" 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename="smime.p7m" MIIKXAYJKoZIhvcNAQcCoIIKTTCCCkkCAQExDzANBglghkgBZQMEAgEFADCCAQoGCSqGSIb3DQEH AaCB/ASB+VRvOiBCb2IgPGJvYkBleGFtcGxlLmNvbT4NCkZyb206IEFsaWNlIDxhbGljZUBleGFt : :

Je kunt eigenlijk geen e-mails versturen vanaf example.com via SparkPost tenzij je dat domein bezit, dus de volgende stap is om je eigen sleutel te gebruiken en een ondertekend bericht te versturen vanaf je eigen domein.

3. Verstuur een ondertekend bericht via SparkPost

Nu gebruiken we een echt verzenddomein, opgezet volgens de SparkPost New User Guide. We hebben het verzendercertificaat en de sleutels in de huidige map:

steve@thetucks.com.crt steve@thetucks.com.pem

Het bestand tests/declaration.eml is opgenomen in het project. Het is gewoon een tekstbestand, dus je kunt het From: adres aanpassen aan je eigen verzenddomein en het To: adres aan je testontvanger. Het begin van het bestand ziet er als volgt uit:

To: Bob <bob.lumreeker@gmail.com> From: Steve <steve@thetucks.com> Subject: Hier is onze verklaring MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-GB Wanneer in de loop der menselijke gebeurtenissen het noodzakelijk wordt ...

Stel je API-sleutel in:

export SPARKPOST_API_KEY=<<Plaats hier je API-sleutel>>

Verstuur de e-mail:

./sparkpostSMIME.py tests/declaration.eml --sign --send_api

Je zult zien:

Verbonden met https://api.sparkpost.com/api/v1 Verzending van tests/declaration.eml From: Steve <steve@thetucks.com> To: Bob  <bob.lumreeker@gmail.com> OK - in 1,15 seconden

Een seconde of zo later komt de e-mail aan in Bob’s inbox. Thunderbird toont het met een rode stip op de envelop, wat een geldige verzenderhandtekening aangeeft.

Thunderbird email inbox showing an email with a subject 'Here is our declaration'

Succes! Maak die koffie af, je hebt het verdiend. Als je problemen ondervindt, controleer dan of je From: adres in het e-mailbestand overeenkomt met de naam van je .crt- en .pem-bestanden.

4. Berichten versleutelen

Om een bericht te versleutelen, heeft u de openbare sleutel van uw ontvanger nodig in certificaatvorm. Dit is een tekstbestand dat er zo uitziet:

Bag Attributes   friendlyName: s COMODO CA Limited ID #2   localKeyID: 32 84 AB 9C 56 5C 80 C6 89 4D 40 46 DD D4 7C 71 E8 CD ED C1 subject=/emailAddress=bob.lumreeker@gmail.com issuer=/C=GB/ST=Greater Manchester/L=Salford/O=COMODO CA Limited/CN=COMODO RSA Client Authentication and Secure Email CA -----BEGIN CERTIFICATE----- ziet eruit als willekeurige tekens hier -----END CERTIFICATE-----

Er is een dummy ontvanger certificaat voor bob@example.com in de tests directory, zodat u ermee kunt oefenen voordat u een echt certificaat heeft:

cd tests ../sparkpostSMIME.py example_email1.eml --sign --encrypt

U zult zien:

To: Bob <bob@example.com>
From: Alice <alice@example.com> 
Subject: A message MIME-Version: 1.0 
Content-Type: application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m 
Content-Transfer-Encoding: base64 
Content-Disposition: attachment; filename=smime.p7m MIIRwQYJKoZIhvcNAQcDoIIRsjCCEa4CAQAxggKlMIICoQIBADCBijCBhDELMAkG :

U zult opmerken dat de lengte van de uitvoer aanzienlijk langer is dan bij een versleuteld bericht omdat het veel extra informatie bevat evenals het gescramblede bericht zelf.


4.1 Een versleuteld, ondertekend bericht verzenden via SparkPost

Laten we een versleuteld bericht naar een echt e-mailadres sturen. U kunt hetzelfde proces volgen als voorheen (zelfondertekend of van een provider zoals Comodo) om een openbare sleutel/certificaat voor uw eigen ontvangeradressen te verkrijgen. U heeft slechts het .crt bestand nodig – de ontvanger hoeft u nooit hun privé sleutel te geven (.p12 en .pem bestanden).

Ik heb het bestand bob.lumreeker@gmail.com.crt voor mijn beoogde ontvanger – die overeenkomt met het Van: adres in mijn bestand.

Hier is het commando om te verzenden:

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt --send_api

Ik zie:

Verbinding geopend naar https://api.sparkpost.com/api/v1 Verzenden tests/declaration.eml Van: Steve <steve@thetucks.com> Naar: Bob <bob.lumreeker@gmail.com> OK - in 1.168 seconden

De e-mail verschijnt in Thunderbird met het “rode stip” handtekeningpictogram en het “slot” versleutelde pictogram.

Thunderbird email view with signature and encryption icons

U kunt net zo gemakkelijk complexe op HTML-gebaseerde e-mail verzenden met links en afbeeldingen zoals die in Deel 1 worden getoond. Sommige clients zoals Thunderbird vragen toestemming om externe links en afbeeldingen weer te geven in versleutelde S/MIME berichten, maar alleen-ondertekende berichten worden goed weergegeven in clients zoals Thunderbird en Gmail:

Avocado marketing email with guacamole in a blue bowl and product order sectionsGmail interface showing an HTML email with guacamole image and Avocado marketing content

Let op het drop-down menu dat “Geverifieerd e-mailadres” toont.

Verdere gedachten en zaken om op te letten

Dit hulpmiddel neemt een super-simpele benadering bij het ophalen van de noodzakelijke sleutels - het zoekt gewoon naar benoemde bestanden in de huidige directory. Meer complexe arrangementen, zoals het opslaan van alle sleutels in een database, kunnen eenvoudig worden toegevoegd, maar ik wilde dat de code zo eenvoudig mogelijk zou zijn.

U kunt andere ontvangers opnemen met Cc: en Bcc: en ze zullen worden afgeleverd; dit kan nuttig zijn voor archiveringsdoeleinden. Ondertekende berichten worden ontvangen en kunnen door andere ontvangers worden weergegeven, compleet met de handtekening. Het hulpmiddel verwijdert de Bcc:-kop van het afgeleverde bericht (zoals een desktop e-mailclient zou doen).

Om ervoor te zorgen dat berichten ongewijzigd door SparkPost worden verzonden (wat ondertekening kan verbreken), stelt het hulpmiddel API-opties in voor "transactional" mailing, met tracking van openen en klikken uitgeschakeld.

Als u encryptie gebruikt, houd er dan rekening mee dat het hulpmiddel het enkele To:-adres hiervoor oppikt. De andere ontvangers kunnen de inhoud van het bericht alleen decoderen als ze de private sleutel van de To:-ontvanger hebben. Als u bijvoorbeeld secundaire ontvangers alleen als registratie van gemaakte leveringen gebruikt, kan dat toch prima zijn.

Getekend, verzegeld, bezorgd... ik ben van jou

Dat is ons snelle overzicht van hoe u S/MIME-berichten via SparkPost kunt ondertekenen, verzegelen en bezorgen. Snelle herinnering: het demoproject staat op Github hier, ik heb geprobeerd het gemakkelijk te installeren en te gebruiken.

Bonusfunctie: het weergeven van MIME-onderdelen met "mimeshow"

RFC822 MIME multipart-bestandsinternals zijn behoorlijk complex om door mensen te lezen. Het project bevat een zelfstandig hulpmiddel om dit makkelijker te maken, genaamd mimeshow.

Dit neemt elk e-mailbestand dat je hebt (niet alleen S/MIME-bestanden) en toont de interne structuur. Hier is een voorbeeld:

./mimeshow.py testcases/img_and_attachment.eml

Je zult zien:

To Bob <bob.lumreeker@gmail.com>
From Steve <steve@thetucks.com> 
Subject Testing attachments etc 
MIME-Version 1.0
Content-Type multipart/mixed; boundary="------------7D48652042860D0098C65210"
Content-Language en-GB
Content-Type multipart/alternative; boundary="------------58C0BF87598336550D70EB95" 
Content-Type text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding 7bit
Content-Transfer-Encoding quoted-printable 
Content-Type text/html; charset="utf-8"
Content-Type application/pdf; name="sparkpost-datasheet-tam-technical-account-management.pdf" 
Content-Transfer-Encoding base64
Content-Disposition attachment; filename="sparkpost-datasheet-tam-technical-account-management.pdf"

Je kunt het ook gebruiken als een filter om een menselijk leesbare samenvatting van sparkpostSMIME-uitvoer te geven:

./sparkpostSMIME.py tests/declaration.eml --sign --encrypt | ./mimeshow.py


Je zult zien:

To Bob <bob.lumreeker@gmail.com>  
From Steve <steve@thetucks.com>
Subject Here is our declaration 
Content-Language en-GB
MIME-Version 1.0
Content-Type application/pkcs7-mime; smime-type=enveloped-data; name=smime.p7m
Content-Transfer-Encoding base64
Content-Disposition attachment; filename=smime.p7m

Eindelijk…

Om samen te vatten – we hebben een aantal eenvoudige commandoregelhulpmiddelen geïnstalleerd voor het ondertekenen en versleutelen van e-mail (de Github-repo is hier, compleet met installatie-instructies).

We hebben onze afzender sleutel / certificaat voor ondertekening gekregen en hebben een ondertekend bericht via SparkPost verzonden. We kregen een ontvanger certificaat voor versleuteling en hebben vervolgens een ondertekend en versleuteld bericht via SparkPost verzonden.

Ten slotte hebben we het handige zelfstandige hulpmiddel “mimeshow” geprobeerd om naar de interne structuur van e-mailbestanden te kijken.

Dat is het voor nu! Tot gauw!

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.

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.

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.

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.

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.

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.