Stel IIS SMTP-relay in voor levering van Office 365-e-mails

Microsoft IIS kan heel goed dienen als een SMTP, maar het vereist nogal wat stappen om in te stellen. Gelukkig voor jou heb ik een IIS SMTP-relayserver opgezet en alle stappen gedocumenteerd!

In dit artikel zullen we alle stappen behandelen die nodig zijn om succesvol een SMTP-relayserver in te stellen om een uitgaande e-mail te verzenden met Office 365. Technisch gezien zullen we deze SMTP-relay gebruiken om e-mail door te sturen naar Office 365; het kan net zo goed werken voor algemene doeleinden van SMTP-relay-e-mailaflevering.

Vereisten

Om IIS in te stellen en met mij mee te doen, zorg ervoor dat je een Windows Server 2016 machine beschikbaar hebt. Ik ga er ook van uit dat je bent ingelogd op de server als beheerder.

Installeer de IIS SMTP-server Windows-functie

De eerste taak die je moet doen om een IIS SMTP-relay in te stellen, is het installeren van de IIS SMTP-server. Je moet de SMTP-server Windows-functie installeren.

Gebruikmakend van Server Manager

Als je niet bekend bent met het installeren van Windows-functies via Server Manager, bekijk dan dit artikel met de titel Rollen, roleservices of functies installeren of verwijderen.

Gebruikmakend van PowerShell

Het installeren van de SMTP-serverfunctie verwijdert veel klikken en punten. Open een PowerShell-console als beheerder en voer de onderstaande regel uit:

PS51> Install-WindowsFeature -Name SMTP-Server -IncludeAllSubFeature -IncludeManagementTools -Restart

Wacht tot de installatie is voltooid. Je zou een uitvoer moeten zien die hierop lijkt.

Installing the SMTP-Server Windows feature with PowerShell

Importeer een certificaat (alleen voor TLS)

Als je e-mails wilt versturen via TLS (Office 365), moet je een SSL-certificaat importeren in de persoonlijke certificaatopslag van de lokale machine van de server voordat je de IIS SMTP-server configureert. Je kunt deze stap overslaan als je Office 365 SMTP-relay niet-TLS is.

Als je geen certificaat hebt, kun je er een verkrijgen via je interne PKI (als je die hebt) of een openbaar certificaat gebruiken via diensten zoals LetsEncrypt, Digicert, enzovoort.

Zodra je het certificaat hebt, moet je het importeren in de persoonlijke certificaatopslag van de lokale machine. Als je niet bekend bent met het importeren van certificaten via de Certificates MMC, bekijk dan Importeren en exporteren van certificaten – Microsoft Windows.

Als het succesvol is, krijg je een bevestigingsvenster te zien zoals dit. Klik op OK (1) om te bevestigen.

Successful certificate import

Terug in het hoofdvenster van de console, vernieuw de Persoonlijk > Certificaten-map en je zou het geïmporteerde certificaat moeten kunnen zien.

Valideer het certificaat.

Zodra geïmporteerd, zorg ervoor dat de certificaatketen compleet is en dat er geen fouten zijn. Als alles goed is, moet je het certificaat kunnen openen en zien dat het veld Geldig vanaf actueel is en dat er een privésleutel is gekoppeld aan het certificaat. Hieronder wordt een voorbeeld getoond.

Validating certificate

Op het tabblad Certificeringspad moet je ook een Certificaatstatus zien waarin staat dat het certificaat OK is zoals hieronder weergegeven.

Certificate status stating that the certificate is OK

Configureer de IIS SMTP-server

Je hebt de SMTP-server op dit punt succesvol geïnstalleerd. Maar voordat je deze kunt gebruiken, moeten de serverinstellingen eerst geconfigureerd worden.

De SMTP-server draait in de compatibiliteitsmodus van IIS6 en wordt niet geleverd met ingebouwde PowerShell-ondersteuning. Dit betekent dat je de instellingen handmatig moet configureren met behulp van de IIS6-beheerconsole.

Ga naar Start -> Uitvoeren en typ inetmgr6 en druk op Enter. Dit opent de IIS 6-console.

Zodra de console is geopend, klik met de rechtermuisknop op [SMTP Virtual Server #1] (1),  en selecteer vervolgens Eigenschappen (2).

Checking SMTP Virtual Server properties

In het venster Eigenschappen, vink Loggen inschakelen (1) aan, klik vervolgens op Eigenschappen (2).

Enabling logging

Ga naar het tabblad Geavanceerd, en vink alle vakjes in de lijst aan (1), klik vervolgens op OK (2).

Checking advanced options

Terug in het venster Eigenschappen, ga naar het tabblad Bezorging en klik op Geavanceerd (1).

Clicking Advanced button on Delivery tab

In het venster Geavanceerde levering, typ het Volledig gekwalificeerde domeinnaam (1) die je wilt gebruiken voor de bestemming SMTP-mailserver. Het hoeft niet hetzelfde te zijn als de FQDN van de computer zelf. Als je deze SMTP-server configureert om te gebruiken met Office 365, voer in het veld Smart host (2) je Office 365 MX-eindpunt in en klik op OK (3).

Setting smart host

Voeg toegestane IP-adressen toe in de IIS SMTP-server

Als je nu een apparaat hebt dat je wilt testen, moet je eerst het IP-adres toevoegen aan de doorstuurbeperkingen. Voor dit voorbeeld wordt het IP-adres 192.168.0.3 toegevoegd aan de doorstuurbeperkingen. Dit IP-adres behoort tot een computer die zich binnen hetzelfde netwerk als de server bevindt.

Om een toegestaan IP-adres toe te voegen in de doorstuurbeperkingen, ga naar het tabblad Toegang en klik op Doorsturen (1).

Relay button on Access tab

In het venster Doorstuurbeperkingen, klik op Toevoegen (1).

Adding a relay restriction

Typ vervolgens het IP-adres (1) dat je wilt toestaan en klik op OK (2).

Restricting relay to only a single IP

Terug in het venster Doorstuurbeperkingen, bevestig dat het IP-adres is toegevoegd aan de lijst, klik vervolgens op OK (1) en OK uit het eigenschappenvenster.

Confirming new relay restriction

Bevestig dat het certificaat wordt gedetecteerd door de SMTP-server en schakel TLS-versleuteling in

Als je relay-server uitgaande e-mails via TLS zal versturen, moet je bevestigen dat het certificaat wordt gezien door de IIS SMTP-server en TLS-versleuteling inschakelen.

Op het tabblad Toegang van de eigenschappen van de SMTP-server zou je een bericht moeten zien met de tekst “Er is een TLS-certificaat gevonden met vervaldatum: XXXXXX”. Als dat het geval is, ben je klaar om verder te gaan.

Inspecting TLS certification expiration date

Vervolgens klik je op het tabblad Bezorging, klik op Uitgaande beveiliging (1), vink het vakje TLS-encryptie (2) aan, klik op OK (3).

Setting TLS encryption on outbound email

Dit concludeert de stappen voor de configuratie van de IIS SMTP-server.

Test de IIS SMTP Mail Relay Server

Op dit punt zou je SMTP-server geconfigureerd moeten zijn en klaar om e-mails door te sturen. De volgende stap is om dit te testen. Je zou nu een testmail moeten versturen via de SMTP-relay om te bevestigen dat de ontvangende SMTP-server de boodschap ontvangt.

Test met de Pick-upmap

Wanneer de IIS SMTP-server is geïnstalleerd, wordt er een map aangemaakt op de server op C:\inetpub\mailroot\Pickup. In deze map worden nieuw ingediende e-mails opgehaald door de SMTP-service voor verwerking voordat ze naar de Wachtrij-map worden verplaatst.

Om te testen met behulp van deze methode, maak een tekstbestand aan met inhoud vergelijkbaar met dit:

From: myname@yourdomain.com
To: someone@somedomain.com,someone@NotYourDomain.com
Subject: testing Pickup directory
This is the test message body.

Vergeet niet de waarden Van en Naar aan te passen naar je eigen waarden.

Sla dit bestand nu ergens anders op dan in de pick-upmap als mail.txt.

Zodra je het bestand hebt opgeslagen, kopieer en plak je het bestand in de map C:\inetpub\mailroot\Pickup. Als het succesvol is, zou het bestand snel moeten verdwijnen. Dit betekent dat de SMTP-service het heeft opgepakt en is begonnen met het verwerken van de boodschap.

Na enkele seconden tot een minuut zou je de e-mail moeten ontvangen die naar het opgegeven e-mailadres van de ontvanger is gestuurd, zoals gedefinieerd in mail.txt.

Test met PowerShell

In deze test maak je gebruik van PowerShell vanaf de computer waarvan je het IP-adres hebt toegevoegd in de Voeg toegestane IP-adressen toe in de IIS SMTP-server sectie.

Open een PowerShell-console en kopieer/plak de onderstaande code. Zorg ervoor dat je de waarden voor de Van, Naar en SmtpServer parameters aanpast. Afhankelijk van hoe je de relay-server hierboven hebt geconfigureerd, kun je een van de onderstaande voorbeelden gebruiken om een niet-TLS of TLS setup te testen.

## Bouw de berichtparameters
$mailParams = @{
    SmtpServer                 = 'smtp.server.here'
    Port                       = 25
    #UseSSL = $true   
    From                       = '[email protected]'
    To                         = '[email protected]', '[email protected]'
    Subject                    = ('ON-PREM SMTP Relay - ' + (Get-Date -Format g))
    Body                       = 'This is a test email using ON-PREM SMTP Relay'
    DeliveryNotificationOption = 'OnFailure', 'OnSuccess'
}
<# Verstuur het bericht #>
Send-MailMessage @mailParams

Samenvatting

In dit artikel heb je geleerd hoe je een IIS SMTP-relayserver kunt instellen voor het bezorgen van e-mails naar ontvangers van Office 365. We hebben zowel een niet-TLS als een TLS SMTP-server ingesteld met behulp van zowel de GUI als PowerShell. Vervolgens hebben we onze setup getest met PowerShell om te bevestigen dat alles goed werkt.

Verder lezen

Source:
https://adamtheautomator.com/iis-smtp-relay/