Microsoft Exchange connector configureren voor Laravel applicaties
Dirk Jan Laros · 20 minuten leestijd · Gepubliceerd op 19-6-2023

Microsoft Exchange connector configureren voor Laravel applicaties

We leggen in drie stappen uit wat je moet configureren om je Laravel applicatie te laten mailen via Microsoft 365.

Context & voorbeeld

Onlangs liepen we tegen problemen aan om een Laravel applicatie te koppelen met Office 365 Exchange. Voor onze klant Firma X hebben we een website in Laravel gebouwd. Er is een contactformulier op www.firma-x.nl die bezoekers een bevestiging mailt vanaf het mailadres info@firma-x.nl, wanneer ze het formulier inzenden. Firma X gebruikt Office365 om de mail te hosten. Het IP van de Firma X server is 223.6.16.1.

Wat heb je nodig?

  • Toegang tot hosting / applicatie
  • Toegang tot het domeinnaam register en DNS
  • Toegang met admin rechten tot het Microsoft 365 Beheercentrum en het Exchange Admin Center.
  • Het static IP van je webhostingpakket waar je Laravel app staat.

Je kunt alle stappen van Microsoft volgen om een SMTP connector aan te maken, maar sommige stappen vonden wij verwarrend waardoor we er 6 uur over gedaan hebben… Daarom hierbij een uitleg voor simpele zielen zoals wij die niet vaak in Microsoft 365 komen. Hiermee zou het binnen 10-20 minuten moeten werken.

Stappen

We gaan deze drie dingen doen:

  • A. Connector aanmaken
  • B. DNS configureren
  • C. Laravel configureren

A. Connector aanmaken

  1. Log in bij het Exchange admin center
  2. Ga naar Mailflow > Connectors
  3. Klik op ‘+ Add a connector’
  4. Kies ‘Your organization’s email server’. Klik op ‘Next’.
  5. In het ‘Connector name’ scherm kan je een naam en beschrijving naar keuze geven. Laat eventuele vinkjes staan zoals ze staan.
  6. In het ‘Authenticating sent mail’ scherm, kies de optie ‘By verifying that the IP address of the sending server matches one of these IP addresses that belong to your organization’. Vul in het veld het static IP van je webhostingpakket in, en klik op + om het toe te voegen.
  7. Klik ‘Next’.
  8. Controleer de gegevens in het laatste scherm en maak de connector aan.

B. DNS configureren

  1. Log in bij het Microsoft 365 admin center
  2. Ga naar Settings > Domains.
  3. Klik op het (standaard) domein waarop je e-mail draait. firma-x.nl (Standaard)
  4. Ga naar DNS-records.
  5. Klik in de tabel op MX. Er opent een zijpaneel.
  6. Kopieer de waarde van het MX-record. Dit ziet zo uit: firma-x-nl.mail.protection.outlook.com. Bewaar deze waarde, want die heb je straks ook nodig voor de configuratie van je Laravel app.

Log nu in bij je domeinnaambeheer.

  1. Maak een nieuw MX-record aan. Voeg firma-x-nl.mail.protection.outlook.com in bij je DNS met prioriteit 0.
  2. Update je SPF-record met de volgende waarde: v=spf1 ip4:223.6.16.1 include:spf.protection.outlook.com ~all.
  3. Optioneel: zet de TTL bij beide records tijdelijk op 5 minuten om het testen te versnellen, mocht je een foutje hebben gemaakt.

C. Laravel configureren

  1. Ga naar je laravel applicatie en open het .env bestand.
  2. Gebruik de onderstaande gegevens:
+ MAIL_MAILER=smtp
+ MAIL_HOST=firma-x-nl.mail.protection.outlook.com
+ MAIL_PORT=25
- MAIL_USERNAME=info@firma-x.nl
- MAIL_PASSWORD=MiepVanDeAdministratie
+ MAIL_FROM_ADDRESS=info@firma-x.nl
+ MAIL_FROM_NAME=”Firma X"
  1. Zoals je ziet zijn MAIL_USERNAME en MAIL_PASSWORD niet nodig omdat je domein is geauthenticeerd via de connector. Verder wellicht overbodig, maar zorg dat poort 25 bruikbaar is. Een andere optie is namelijk niet toegestaan door Microsoft.

  2. Stuur een testmail met bijvoorbeeld dit testscript in php artisan tinker:

    Mail::raw('Test123', function($message){ $message->to('your@email.com'); });
    

    Als het mailtje binnenkomt en als je een response krijgt vergelijkbaar met = Illuminate\Mail\SentMessage {#7460} is alles hoogstwaarschijnlijk goed ingesteld.

Update

Als alles werkt moet je niet vergeten het TTL van je DNS terug te zetten naar 1 uur.

Vragen of opmerkingen

Heb je vragen? Of klopt er iets niet? Stuur ons even een mailtje via info@q2-software.nl of join Discord.

Profielfoto van Dirk Jan

Dirk Jan

developer, directeur

Dirk Jan is developer bij en eigenaar van Q2-software.nl. Hij heeft grote passie voor Laravel, front-end en merkidentiteit.

Tags

Samen aan de slag
Of een vraag?

stuur een e-mail naar
info@q2-software.nl
of telefoneer 085 06 06 133