Articles

Adam de Automator

haat het of hou ervan; e-mail is overal. Het protocol om die e-mail overal te verplaatsen is SMTP, en de SMTP “routers” zijn SMTP relais.

het instellen van SMTP-relais verschilt per systeem, maar als u Office 365 als uw mail service provider hebt, zijn uw opties beperkt. De installatie kan ingewikkeld en foutgevoelig zijn, vooral voor apparaten die niet geschikt zijn voor TLS.

merk op dat het verzenden van e-mail via Office 365 geen SMTP-relay vereist. U kunt clients e-mails rechtstreeks naar Office 365 sturen zonder een SMTP-relay toe te voegen dat geen configuratiewijzigingen vereist. Om te leren wat ze zijn, lees hoe je Office 365 Direct Send/SMTP Client Submission e-mail (PowerShell) te verzenden.

inhoudsopgave

vereisten

Dit zijn de vereisten voordat u verder kunt gaan.

  1. een Office 365-abonnement. Als je dit nog niet hebt, kun je je aanmelden voor een Office 365 E5 proefabonnement.
  2. een Windows 10-computer met PowerShell v5.1
  3. een openbaar statisch IP-adres. U kunt nog steeds een SMTP relay maken in Office 365, zelfs zonder dit, maar misschien niet testen.
  4. TCP-poort 25 toegang van een client tot uw Office MX-eindpunt
  5. Een geldig SSL-certificaat. Dit certificaat kan een wildcard certificaat zijn (bijv. * . yourdomain.com) uitgegeven door derden certificaat autoriteiten zoals LetsEncrypt, Digicert, enz. Houd er rekening mee dat u zelfondertekende certificaten of certificaten die door een interne PKI zijn uitgegeven, niet kunt gebruiken omdat ze niet worden ondersteund. (alleen vereist voor TLS-verbindingen)

om een SMTP-relais in te stellen, moet u eerst een connector maken in Office 365 om SMTP-transacties te accepteren. Deze connector ontvangt SMTP relay-transacties van de toepassing of het apparaat.

voordat u probeert een connector aan te maken, moet u ervoor zorgen dat uw account de juiste Exchange Online rechten heeft. Zorg ervoor dat uw account lid is van de organisatie Management groep.

er zijn twee manieren om een connector aan te maken. Je kunt het Exchange Admin Center of PowerShell gebruiken. Beide opties zullen dezelfde taak uitvoeren. Het is aan jou welke je moet gebruiken. In dit artikel zullen we beide behandelen. We behandelen ook het maken van zowel niet-TLS-als TLS-connectoren.

Maak een niet-TLS-Connector aan met behulp van het Exchange Admin Center

laten we beginnen met het maken van een niet-TLS-connector. Je leert dit eerst via het Exchange Admin Center. U kunt veel Office 365 SMTP-instellingen configureren in het Exchange Admin Center.

eenmaal ingelogd, klik op mail flow –1) –> connectors (2) – > nieuw (3). Het nieuwe Connectorvenster verschijnt.

nieuwe Connector
nieuwe Connector

in het venster Nieuwe Connector kiest u uit: de e-mailserver van uw organisatie (1), selecteert u naar: Office 365 (2), klikt u op Volgende (3).

een e-mailstroomscenario selecteren

voer in het volgende venster de naam SMTP Relay (Non-TLS) in of kies uw eigen naam (1), Typ de beschrijving accept relay from on-premises SMTP Server (2), verwijder het vinkje behoud interne Exchange-e-mailheaders (aanbevolen) (3) en klik op Volgende (4).

een naam toewijzen aan de connector

selecteer in het volgende venster door te controleren of het IP-adres van de verzendende server overeenkomt met één van deze IP-adressen die tot uw organisatie behoren (1) en klik op toevoegen (2).

toegestane IP-adressen toevoegen aan de connector

Typ in het nieuwe pop-upvenster uw openbare IP-adres (1), dan klik op OK (2). Dit brengt je terug naar het vorige venster.

toegestane IP-adressen toevoegen aan de connector

Controleer of het IP-adres in de lijst is toegevoegd (1), klik vervolgens op Volgende (2).

toegestane IP-adressen toevoegen aan de connector

dan ziet u de samenvatting van de wijzigingen die u moet implementeren. Werk eerst aan de noodzakelijke veranderingen. Als er geen is, kunt u doorgaan en klik op Opslaan.

terug in het Exchange Admin Center kunt u nu bevestigen dat de nieuwe connector is aangemaakt.

Office 365-Connector is aangemaakt

u moet nu een niet-TLS-connector hebben aangemaakt.

een TLS-Connector maken met Exchange Admin Center

een TLS-connector maken is vergelijkbaar met een niet-TLS-connector maken. Zoals u een niet-TLS-connector hebt gemaakt, gaat u terug naar de wizard Nieuwe Connector en gebruikt u hetzelfde e-mailstroomscenario. Ik zal gebruik maken van een A connector naam van SMTP relais (niet-TLS), maar de jouwe kan variëren.

in het venster om Office 365 te definiëren moet e-mail van uw e-mailserver worden geïdentificeerd, selecteert u:

  • door te controleren of de naam van het onderwerp op het certificaat dat de verzendende server gebruikt om zich aan te melden bij Office 365 overeenkomt met deze domeinnaam (aanbevolen) (1)
  • typ vervolgens het onderwerp van het SSL-certificaat (2)
  • en klik op Volgende (3).
Maak een TLS-Connector aan met behulp van Exchange Admin Center

opnieuw ziet u een samenvatting van de benodigde veranderingen. Werk er eerst aan voor de verwerking. Als er geen is, kunt u meteen op de knop Opslaan klikken.

Maak een niet-TLS-Connector met PowerShell

als het maken van Office 365-connectoren via een GUI niet uw ding is, kunt u ze altijd ook via PowerShell maken. Om dit te doen, zorg er eerst voor dat je verbonden bent met Exchange Online PowerShell.

om de connector aan te maken, moet u het commando New-InboundConnector uitvoeren. Dit commando vereist een paar verschillende parameters, dus Ik zal het opzetten van deze parameters van tevoren met behulp van PowerShell splatting.

Ik heb een aantal opmerkingen toegevoegd in de code zelf hieronder, maar hier is een uitsplitsing van elke parameter en waarvoor het wordt gebruikt:

  • naam-Dit is de naam van de connector.
  • ConnectorType-Dit is het type connector. Deze waarde kan OnPremises of Partnerzijn. In dit scenario is het juiste type OnPremises.
  • SenderDomains-dit kan een lijst zijn van de toegestane afzenderdomeinen. Alleen geverifieerde domeinen voor uw huurder zijn geldige keuzes. Het sterretje (*) betekent dat u al uw geverifieerde domeinen toestaat om berichten door te geven met behulp van deze connector. Als u alleen bepaalde afzenderdomeinen wilt toestaan, wijzigt u deze waarde in een array van de domeinen. (bijvoorbeeld. 'domain1.com','domain2.com')
  • afzender – adres-Dit is uw openbare IP-adres. Vergeet niet om dit te veranderen voor de uitvoering.
  • Restrictdomain Toipadresses-wanneer deze waarde is ingesteld op $true, geeft dit aan dat deze connector alleen e-mails accepteert van afzenderadressen die afkomstig zijn van uw toegestane publieke IP-adres.
$splat = @{ ## Define the name of the connector. Name = 'SMTP Relay' ## Defined the type of connector to create. ConnectorType = 'OnPremises' ## The set of sender domains allowed to relay. SenderDomains = '*' ## Change this to your actual public IP address. SenderIPAddresses = '110.x.x.x' ## Restrict the email relay only to your sender domains and sender IP address RestrictDomainsToIPAddresses = $true}## Create the connectorNew-InboundConnector @splat

wanneer uitgevoerd, ziet u iets dergelijks als hieronder.

New-InboundConnector
New-InboundConnector

Maak een TLS-Connector aan met PowerShell

ervan uitgaande dat ‘ re connected, voer de onderstaande code uit om ook een TLS-connector met PowerShell te maken. U kunt hieronder zien dat veel parameters identiek zijn aan het maken van een niet-TLS-connector. De vereiste parameters die afwijken van het maken van een niet-TLS-connector zijn:

  • RequireTLS-dit geeft aan dat alle berichten die door deze connector worden ontvangen TLS – transmissie
  • TlsSenderCertificateName vereisen-dit is de naam (of het onderwerp) van het certificaat dat door de afzender wordt gebruikt.
$splat = @{ ## Define the name of the connector. Name = 'SMTP Relay (TLS)' ## The type of connector to create. ConnectorType = 'OnPremises' ## The set of sender domains allowed to relay. SenderDomains = '*' ## Require TLS RequireTLS = $true ## Subject/Name of the SSL certificate TlsSenderCertificateName = '*.YourDomain.com'}## Create the connectorNew-InboundConnector @splat

Voer de bovenstaande code uit en laat een TLS-connector aanmaken die klaar is om e-mail te ontvangen.

het testen van de Office 365 SMTP Relay Connector met PowerShell

na het maken van de connector, bereid je voor om het uit te testen. De makkelijkste manier om dat te doen is door PowerShell te gebruiken. In deze sectie zullen we enkele PowerShell-scripts maken zodat je er eenvoudig zeker van kunt zijn dat de connector goed werkt.

voordat u begint met testen, moet u eerst weten wat de MX-eindpunt-URL is voor uw Exchange Online-domein. Als u niet weet hoe u uw MX endpoint URL kunt vinden, log dan in op de Office 365 Admin Portal. Klik op Setup, Selecteer domeinen, klik op de domeinnaam en kopieer de MX-punten naar adres of waarde.

Testing a non-TLS SMTP Relay (IP Address)

Note: Deze tests moeten worden uitgevoerd vanaf de computer waarvan het publieke IP-adres is toegestaan in de Office 365 SMTP relay-instelling.

gebruik onderstaande PowerShell-code voor het testen. Zorg ervoor dat u de FromTo en SmtpServer parameterwaarden wijzigt om uw eigen Office 365 SMTP relay-instellingen te gebruiken voordat u het uitvoert.

  • To – moet één interne domeinontvanger en één externe domeinontvanger bevatten. Vergeet niet om deze waarden te veranderen naar uw eigen.
  • From – moet worden gewijzigd in uw opgegeven afzenderadres. Het domeingedeelte van het e-mailadres moet een van de e-maildomeinen van uw huurder zijn.
  • SmtpServer – moet worden gewijzigd in het MX-eindpunt van uw Office 365 tenant.
$mailParams = @{ SmtpServer = '<tenant>.mail.protection.outlook.com' Port = '25' From = '' To = '','' Subject = ('SMTP Relay - ' + (Get-Date -Format g)) Body = 'This is a test email using SMTP Relay' DeliveryNotificationOption = 'OnFailure','OnSuccess'}Send-MailMessage @mailParams

het testen van een TLS SMTP Relay (Certificate)

Opmerking: U moet het publieke SSL-certificaat in PFX-formaat hebben voordat u verder kunt met deze test.

aangezien de TLS SMTP relay een certificaat vereist, kunt u de Send-MailMessage PowerShell cmdlet niet gebruiken omdat het u niet toestaat een specifiek certificaat te selecteren. Gebruik in plaats daarvan twee. net-objecten genaamd System. Net. Mail. SmtpClient om de SMTP-parameters te definiëren, en System.Net.Mail.MailMessage om het bericht op te stellen.

hieronder vindt u een PowerShell code fragment dat u kunt gebruiken om het TLS SMTP relais te testen. Vergeet niet om de pfxFilepfxPassFromTo en SmtpServer waarden te wijzigen om uw Office 365 SMTP relay instellingen te gebruiken voordat u het uitvoert.

# specify the full path of your PFX certificate$pfxFile = "C:\Certificate\cert.pfx"$pfxPass = '<cert password here>'$pfxBytes = Get-Content -path $pfxFile -encoding Byte -ErrorAction:SilentlyContinue$X509Cert = New-Object -TypeName System.Security.Cryptography.X509Certificates.X509Certificate2$X509Cert.Import(]$pfxBytes, $pfxPass,"Exportable,PersistKeySet")# Build SMTP properties$smtpServer = '<tenant>.mail.protection.outlook.com'$smtpPort = '25'$smtp = New-Object Net.Mail.SmtpClient($smtpServer,$smtpPort)$smtp.ClientCertificates.Add($X509Cert)$smtp.EnableSSL = $true# Compose message$emailMessage = New-Object System.Net.Mail.MailMessage$emailMessage.From = ''$emailMessage.To.Add('')$emailMessage.To.Add('')$emailMessage.Subject = ('SMTP Relay (TLS) - ' + (Get-Date -Format g))$emailMessage.Body = 'This is a test email using SMTP Relay (TLS)'# Send the message$smtp.Send($emailMessage)

als het instellen van de TLS-connector correct is, moeten de ontvangers die definiëren via de methode Add() de test-e-mail ontvangen.

valideren van SMTP Relay Hops met behulp van de berichtkop

nu hebt u een functionele SMTP relay ingesteld met behulp van een lokale server en Office 365 SMTP relay. Alle tests waren succesvol en uw apparaten kunnen berichten verzenden naar zowel interne als externe ontvangers. Goed gedaan!

Als u nog steeds twijfelt en moet bevestigen of deze berichten door de Office 365 SMTP relay gaan, kunt u de berichtkoppen van de ontvangen e-mails bekijken.

Opmerking: Het openen van de berichtkoppen varieert tussen verschillende mailclients. Het onderstaande voorbeeld is specifiek voor Gmail.

Open de e-mail in de Gmail-interface, open het bericht, en klik op de drie verticale stippen (1), klik vervolgens op Toon origineel (2).

valideren van SMTP Relay Hops met behulp van de berichtkop
valideren van SMTP Relay Hops met behulp van de berichtkop

een nieuwe pagina toont de berichtkoppen. Klik op Kopiëren naar klembord (1).

valideren van SMTP Relay Hops met behulp van de berichtkop
valideren van SMTP Relay Hops met behulp van de berichtkop

Open een nieuw tabblad browser en navigeer naar https://testconnectivity.microsoft.com/.

ga naar het tabblad Message Analyzer (1), plak de gekopieerde gegevens in het vak (2) en klik op Headers analyseren (3).

Analyzing headers
Analyzing headers

het resultaat van de analyse wordt weergegeven in de onderstaande tabel.

analyseresultaten
analyseresultaten

u ziet de volgende workflow in de bovenstaande resultaten:

  1. IP-adres 192.168.0.3 De geeft aan de oorsprong van de computer.
  2. On-prem SMTP relay server heeft het bericht ontvangen.
  3. Exchange Online Protection (EOP) heeft het bericht ontvangen.
  4. Exchange Online server and re-routed for outbound delivery received the message.
  5. Office 365 to google.com bracht de boodschap.

op basis van de analyseresultaten kunt u bevestigen dat het bericht door het SMTP-relais van Office 365 is gegaan zoals bedoeld.

samenvatting

In dit artikel hebt u geleerd hoe u een TLS en niet-TLS Office 365 SMTP relay kunt maken. U hebt ook geleerd hoe u de functionaliteit ervan kunt testen en bevestigen met behulp van verschillende technieken en hoe u de SMTP-routes kunt valideren die het bericht heeft doorgegeven.

verder lezen