Adam the Automator
Détestez-le ou aimez-le; le courrier électronique est partout. Le protocole pour déplacer cet e-mail partout est SMTP, et les « routeurs » SMTP sont des relais SMTP.
La configuration des relais SMTP varie selon les systèmes, mais si vous avez Office 365 comme fournisseur de services de messagerie, vos options sont limitées. La configuration peut être compliquée et sujette aux erreurs, en particulier pour les appareils qui ne sont pas compatibles TLS.
Notez que l’envoi d’e-mails via Office 365 ne nécessite pas de relais SMTP. Vous pouvez demander aux clients d’envoyer des e-mails directement à Office 365 sans ajouter de relais SMTP qui ne nécessite aucune modification de configuration. Pour savoir ce qu’ils sont, lisez Comment Envoyer un e-mail de soumission Client Office 365 Direct Send / SMTP (PowerShell).
Table des matières
Prérequis
Ce sont les conditions requises avant de pouvoir continuer.
- Un abonnement Office 365. Si vous ne l’avez pas encore, vous pouvez souscrire à un abonnement d’essai Office 365 E5.
- Un ordinateur Windows 10 avec PowerShell v5.1
- Une adresse IP statique publique. Vous pouvez toujours créer un relais SMTP dans Office 365 même sans cela, mais vous pourriez ne pas tester.
- Port TCP 25 accédez d’un client à votre point de terminaison Office MX
- Un certificat SSL valide. Ce certificat peut être un certificat générique (par exemple. *.yourdomain.com ) émis par des autorités de certification tierces telles que LetsEncrypt, Digicert, etc. Notez que vous ne pouvez pas utiliser de certificats auto-signés ou de certificats émis par une ICP interne car ils ne sont pas pris en charge. (uniquement requis pour les connexions TLS)
Pour configurer un relais SMTP, vous devez d’abord créer un connecteur dans Office 365 pour accepter les transactions SMTP. Ce connecteur recevra les transactions de relais SMTP de l’application ou du périphérique.
Avant de tenter de créer un connecteur, assurez-vous que votre compte dispose des autorisations Exchange Online appropriées. Assurez-vous que votre compte est membre du groupe de gestion de l’organisation.
Il existe deux façons de créer un connecteur. Vous pouvez utiliser le centre d’administration Exchange ou PowerShell. Les deux options effectueront la même tâche. C’est à vous de choisir lequel utiliser. Dans cet article, nous couvrirons les deux. Nous couvrirons également la création de connecteurs non TLS et TLS.
Créez un connecteur Non-TLS à l’aide du Centre d’administration Exchange
Commençons par créer un connecteur non-TLS. Vous apprendrez d’abord à le faire via le centre d’administration Exchange. Vous pouvez configurer de nombreux paramètres SMTP Office 365 dans le centre d’administration Exchange.
Une fois connecté, cliquez sur flux de courrier (1) – >connecteurs (2) – > Nouveau (3). La nouvelle fenêtre de connecteur apparaîtra.
Dans la fenêtre Nouveau Connecteur, sélectionnez Parmi : Le serveur de messagerie de votre organisation (1), sélectionnez : Office 365 ( 2), cliquez sur Suivant (3).
Dans la fenêtre suivante, entrez le nom Relais SMTP (Non-TLS) ou choisissez votre propre nom (1), tapez la description Accepter le relais à partir du serveur SMTP local (2), décochez Conserver les en-têtes de messagerie Exchange internes (recommandé) (3) et cliquez sur Suivant (4).
Dans la fenêtre suivante, sélectionnez En vérifiant que l’adresse IP de l’envoi est le serveur correspond à l’une de ces adresses IP appartenant à votre organisation (1), puis cliquez sur Ajouter (2).
1), puis cliquez sur OK (2). Cela devrait vous ramener à la fenêtre précédente.
Vérifiez que l’adresse IP est ajoutée dans la liste (1 ), puis cliquez sur Suivant (2).
Ensuite, vous verrez le résumé des modifications que vous devez implémenter . Travaillez d’abord sur les changements nécessaires. S’il n’y en a pas, vous pouvez continuer et cliquer sur Enregistrer.
De retour dans le centre d’administration Exchange, vous pouvez maintenant confirmer que le nouveau connecteur a été créé.
Vous devriez maintenant avoir un connecteur non-TLS créé.
Créer un connecteur TLS à l’aide d’Exchange Admin Center
La création d’un connecteur TLS est similaire à la création d’un connecteur non-TLS. Comme vous avez créé un connecteur non-TLS, revenez à l’assistant Nouveau connecteur et utilisez le même scénario de flux de courrier. J’utiliserai un nom de connecteur de relais SMTP (non-TLS), mais le vôtre peut varier.
Dans la fenêtre pour définir Office 365 devrait identifier le courrier électronique de votre serveur de messagerie, sélectionnez :
- En vérifiant que le nom de l’objet sur le certificat que le serveur d’envoi utilise pour s’authentifier auprès d’Office 365 correspond à ce nom de domaine (recommandé) (1)
- puis tapez l’objet du certificat SSL (2)
- et cliquez sur Suivant (3).
Encore une fois, vous verrez un résumé des changements nécessaires. Travaillez-les d’abord avant le traitement. S’il n’y en a pas, vous pouvez cliquer sur le bouton Enregistrer tout de suite.
Créez un connecteur non-TLS à l’aide de PowerShell
Si la création de connecteurs Office 365 via une interface graphique n’est pas votre truc, vous pouvez toujours les créer via PowerShell également. Pour ce faire, assurez-vous d’abord d’être connecté à Exchange Online PowerShell.
Pour créer le connecteur, vous devez exécuter la commande New-InboundConnector
. Cette commande nécessite quelques paramètres différents, donc je vais configurer ces paramètres à l’avance en utilisant PowerShell splatting.
J’ai ajouté quelques commentaires dans le code lui-même ci-dessous, mais voici une ventilation de chaque paramètre et à quoi il sert:
- Nom – C’est le nom du connecteur.
- ConnectorType – C’est le type de connecteur. Cette valeur peut être
OnPremises
ouPartner
. Dans ce scénario, le type approprié estOnPremises
. - SenderDomains – Il peut s’agir d’une liste des domaines d’expéditeur autorisés. Seuls les domaines vérifiés pour votre locataire sont des choix valides. L’astérisque (
*
) signifie que vous autorisez tous vos domaines vérifiés à relayer des messages à l’aide de ce connecteur. Si vous n’avez besoin que d’autoriser certains domaines d’expéditeur, remplacez cette valeur par un tableau des domaines. (par exemple.'domain1.com','domain2.com'
) - SenderIPAddresses – C’est votre adresse IP publique. N’oubliez pas de changer cela avant l’exécution.
- RestrictDomainsToIPAddresses – Lorsque cette valeur est définie sur
$true
, cela indique que ce connecteur n’acceptera que les e-mails provenant d’adresses d’expéditeur provenant de votre adresse IP publique autorisée.
$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
Une fois exécuté, vous devriez voir quelque chose de similaire à ci-dessous.
Créer un connecteur TLS à l’aide de PowerShell
En supposant que vous êtes connecté, exécutez le code ci-dessous pour créer également un connecteur TLS avec PowerShell. Vous pouvez voir ci-dessous que de nombreux paramètres sont identiques à la création d’un connecteur non-TLS. Les paramètres requis qui diffèrent de la création d’un connecteur non-TLS sont:
- RequireTLS – Spécifie que tous les messages reçus par ce connecteur nécessitent une transmission TLS
- TlsSenderCertificateName – Il s’agit du nom (ou de l’objet) du certificat utilisé par l’expéditeur.
$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
Exécutez le code ci-dessus et créez un connecteur TLS prêt à recevoir des e-mails.
Test du connecteur de relais SMTP Office 365 avec PowerShell
Après avoir créé le connecteur, préparez-vous à le tester. La façon la plus simple de le faire est d’utiliser PowerShell. Dans cette section, nous allons créer des scripts PowerShell pour vous permettre de vous assurer facilement que le connecteur fonctionne correctement.
Avant de commencer les tests, assurez-vous d’abord de savoir quelle est l’URL de point de terminaison MX pour votre domaine Exchange Online. Si vous ne savez pas comment trouver l’URL de votre point de terminaison MX, connectez-vous au portail d’administration Office 365. Cliquez sur Configuration, sélectionnez Domaines, cliquez sur le nom de domaine et copiez les points MX à l’adresse ou à la valeur.
Test d’un relais SMTP non TLS (adresse IP)
Remarque: Ce test doit être effectué à partir de l’ordinateur dont l’adresse IP publique est autorisée dans la configuration du relais SMTP Office 365.
Utilisez le code PowerShell ci-dessous pour les tests. Assurez-vous de modifier les valeurs des paramètres From
To
et SmtpServer
pour utiliser vos propres paramètres de relais SMTP Office 365 avant de l’exécuter.
To
– – Doit inclure un destinataire de domaine interne et un destinataire de domaine externe. N’oubliez pas de changer ces valeurs pour les vôtres.
From
– Doit être changé en votre adresse d’expéditeur désignée. La partie domaine de l’adresse e-mail doit être l’un des domaines de messagerie de votre locataire.SmtpServer
– Doit être remplacé par le point de terminaison MX de votre locataire Office 365.$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
Test d’un relais SMTP TLS (certificat)
Remarque : Vous devez disposer du certificat SSL public au format PFX avant de pouvoir procéder à ce test.
Comme le relais SMTP TLS nécessite un certificat, vous ne pouvez pas utiliser l’applet de commande PowerShell Send-MailMessage
car elle ne vous permet pas de sélectionner un certificat spécifique. Utilisez plutôt deux objets .NET appelés System.Net.Mail.SmtpClient pour définir les paramètres SMTP et System.Net.Mail.MailMessage pour composer le message.
Vous trouverez ci-dessous un extrait de code PowerShell que vous pouvez utiliser pour tester le relais SMTP TLS. N’oubliez pas de changer les valeurs pfxFile
pfxPass
From
To
et SmtpServer
pour utiliser votre Paramètres de relais SMTP Office 365 avant de l’exécuter.
# 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)
Si la configuration du connecteur TLS est correcte, les destinataires définis via la méthode Add()
doivent recevoir l’e-mail de test.
Validation des sauts de relais SMTP à l’aide de l’en-tête de message
Vous disposez maintenant d’un relais SMTP fonctionnel configuré à l’aide d’un serveur local et d’un relais SMTP Office 365. Tous les tests ont réussi et vos appareils peuvent envoyer des messages à des destinataires internes et externes. Beau travail!
Si vous avez encore des doutes et que vous devez confirmer si ces messages passent par le relais SMTP Office 365, vous pouvez consulter les en-têtes des messages sur les e-mails reçus.
Remarque: L’ouverture des en-têtes de message varie selon les différents clients de messagerie. L’exemple ci-dessous est spécifique à Gmail.
Ouvrez l’e-mail dans l’interface Gmail, ouvrez le message et cliquez sur les trois points verticaux (1), puis cliquez sur Afficher l’original (2).
Une nouvelle page affichera l’e-mail en-têtes de message. Cliquez sur Copier dans le presse-papiers (1).
Ouvrez un nouvel onglet du navigateur et accédez à https://testconnectivity.microsoft.com/.
Accédez à l’onglet Analyseur de messages (1), collez les données copiées dans la zone (2) et cliquez sur Analyser les en-têtes (3).
Le résultat de l’analyse sera affiché dans le tableau ci-dessous.
Vous devriez voir le flux de travail suivant dans les résultats ci-dessus:
- Adresse IP 192.168.0.3 le indique l’origine de l’ordinateur.
- Le serveur relais SMTP sur site a reçu le message.
- Exchange Online Protection (EOP) a reçu le message.
- Le serveur en ligne Exchange et réacheminé pour la livraison sortante ont reçu le message.
- Bureau 365 à google.com livré le message.
Sur la base des résultats de l’analyse, vous pouvez confirmer que le message a bien transité par le relais SMTP Office 365 comme prévu.
Résumé
Dans cet article, vous avez appris à créer un relais SMTP Office 365 TLS et non-TLS. Vous avez également appris à tester et à confirmer leur fonctionnalité à l’aide de différentes techniques et à valider les routes SMTP traversées par le message.
Leave a Reply