Configurer Office 365 comme SMTP Relay
Sommaire
I. Présentation
Lorsque vous utilisez Office 365 comme service de messagerie, vous pouvez avoir le besoin de l'utiliser comme relais SMTP pour envoyer des e-mails à partir d'applications tierces ou certains périphériques, comme un copieur et sa fonction scan-to-mail.
Pour s'appuyer sur Office 365 comme on le ferait avec son serveur de messagerie on-premise, Microsoft propose trois solutions :
- S'authentifier directement auprès du SMTP smtp.office365.com à l'aide d'un compte Office 365 sous licence, afin de permettre d'envoyer des e-mails. Malheureusement, cette option requiert l'utilisation d'un compte Office 365 et donc des frais. Le support de TLS est également un prérequis.
- Utiliser l'envoi direct en s'appuyant sur la modification de l'enregistrement DNS SPF de votre domaine et en utilisant le SMTP "<domain-com>.mail.protection.outlook.com", mais par contre vous pourrez envoyer des e-mails uniquement vers des utilisateurs Office 365, et que l'e-mail pourrait passer comme spam.
- Utiliser Office 365 comme relais SMTP, ceci nécessite plus de configuration que les options précédentes, mais elle ne coûte rien et offre de nombreuses possibilités. En fait, en créant un connecteur sur votre instance Exchange Online et en modifiant l'enregistrement DNS SPF de votre domaine, vous pourrez autoriser une ou plusieurs adresses IP à utiliser Office 365 pour envoyer des e-mails. C'est cette possibilité qui fait l'objet de cet article, voyons comment configurer Office 365 comme relais SMTP.
II. Créer un connecteur sur Exchange
A l'aide d'un compte d'administration, connectez-vous au portail Office 365 et accédez à l'administration, puis au Centre d'administration Exchange.
Sur la partie centrale de l'interface, sous "Flux de courrier" cliquez sur "Connecteurs".
Lorsque vous êtes sous connecteurs, cliquez sur le + pour ouvrir la page de création d'un connecteur.
Ici, vous allez choisir "De : Serveur de courrier de votre organisation" et "Vers : Office 365" pour que l'on autoriser notre serveur (ou périphérique) distant à se connecter à Office 365. Cliquez sur "Suivant".
Donnez un nom à ce connecteur et activez-le.
Vous pouvez utiliser une méthode par certificat, mais sinon en indiquant une adresse IP (méthode plus simple, moins sécurisée). Cochez "En vérifiant que l'adresse IP du serveur d'envoi correspond à l'une de ces adresses IP qui appartiennent à votre organisation".
Cliquez sur le +.
Au niveau du champ "Ajouter une adresse IP", indiquez l'adresse IP publique qui sera visible par Office 365 lorsque votre application/périphérique cherchera à envoyer des e-mails. Validez et répétez plusieurs fois si vous avez plusieurs IP à autoriser.
Vérifiez les informations et cliquez sur enregistrer pour valider la création.
Sur Office 365, la configuration est terminée. Par défaut, vous pourrez envoyer des e-mails depuis votre service externe en utilisant le même domaine que celui de votre tenant Office 365. Passons maintenant à la partie DNS.
III. Vérifier et configurer le DNS : MX et SPF
Au sein de la gestion du domaine sur l'interface Office 365, si vous cliquez sur votre domaine vous pouvez vérifier qu'il est correctement configuré. Vous allez devoir relever l'enregistrement MX lié à votre domaine, qui aura une valeur sous ce format : it-connect-fr.mail.protection.outlook.com
Au sein de la gestion de votre DNS, vous allez pouvoir récupérer la valeur et vérifier qu'elle est correcte, sinon avec nslookup :
nslookup set q=MX it-connect.fr
Ceci vous retournera une valeur comme ceci :
it-connect.fr MX preference = 0, mail exchanger = it-connect-fr.mail.protection.outlook.com
Ensuite, quand vous aurez cette valeur gardez-la de côté... Il va maintenant modifier un enregistrement DNS de sécurité anti-spam : le SPF (Sender Policy Framework) pour autoriser des serveurs à envoyer des e-mails pour un domaine donné, et éviter ainsi d'être déclaré comme spam. C'est en quelque sorte un filtre au niveau DNS.
Voici probablement à quoi ressemble votre enregistrement SPF par défaut, exemple sur l'interface OVH :
Vous allez devoir le modifier de cette manière... De base :
v=spf1 include:spf.protection.outlook.com ~all
Après modification (ajout de ip4: suivi de votre IP) :
v=spf1 ip4:<votre-ip> include:spf.protection.outlook.com ~all
Ce qui donne en image :
Il vous suffit de poursuivre l'assistant pour valider la modification de l'enregistrement DNS. Ensuite, il va falloir patienter que les changements soient répliqués sur les DNS pour que ce soit opérationnel.
Sur votre application ou périphérique qui doit profiter d'Office 365 comme relais SMTP, vous devrez utiliser les informations suivantes :
- Serveur SMTP : la valeur MX récupérée précédemment, sous la forme it-connect-fr.mail.protection.outlook.com
- Port : 25
- Pas nécessaire d'utilisateur un login ou un mot de passe
Vous devez pouvoir envoyer des e-mails ! 🙂
Finalement, l'inconvénient de cette méthode c'est l'autorisation donnée à partir de l'adresse IP (publique), potentiellement tous les équipements et applications derrière cette adresse IP pourraient utiliser Office 365 comme SMTP. Par contre, si vous utilisez une adresse IP publique sur une de vos applications web, ça restreint le scope de périphériques qui peuvent utiliser Office 365 comme SMTP. Encore que, on pourrait fonctionner par certificat... mais c'est côté application ou périphérique tiers que ce serait plus compliqué, mais si vous avez un Exchange à l'autre extrémité c'est parfait !
L'avantage c'est qu'avec un peu de configuration et sans prendre le moindre abonnement Office 365 spécifique à cet usage, vous pouvez envoyer des e-mails via Office 365.
Enfin, sur le site de Microsoft, une image explique le fonctionnement du relais SMTP Office 365 :
Bonjour,
Dans le cas où on a plusieurs adresses IP publiques sur un domaine (société multi-sites), au niveau de l’enregistrement DNS de sécurité, comment fait-on ? Doit-on avoir une ligne DNS par IP publique ?
Merci d’avance pour votre réponse
Bonjour,
Dans ce cas on met la seconde adresse IP dans le même enregistrement :
v=spf1 ip4:167.XX.XXX.247 ip4:167.XX.XXX.40 include:spf.protection.outlook.com ~all
https://support.dnsimple.com/articles/spf-record/
Bonjour,
J’ai suivi votre process de bout en bout. Malheureusement, je n’arrive pas à envoyer de message à partir de mon scanner.
Je suis loin d’être un expert.
Mon domaine est hébergé chez O2switch. J’ai rajouté les adresses publiques de ce domaine comme vous l’indiquez. Mais lorsque je lance le scan d’un document pour l’envoyer par mail à une adresse interne (gérée sous office 365), cela ne fonctionne pas. Le scanner me dit qu’il n’arrive pas à se connecter au serveur.
Pouvez-vous m’aider?
Bonjour
merci, c’est effectivement pratique de pouvoir se passer de l’authentification SMTP avec un compte exchange mais le souci que je rencontre est que le champ FROM du mail envoyé DOIT toujours être un email de l’organisation exchange 365!
Je n’arrive pas à utiliser cette méthode pour envoyer depuis mon site web des mails dont le champ FROM est un email n’appartenant pas à mon domaine.
Ca serait pourtant bien pratique dans les formulaires de contact du site web qui envoie un mail au webmaster depuis l’adresse email de l’internaute qui soumet le formulaire.
il semblerait que office365 exige tout de meme que le champ FROM reste un email du domaine ou alors il me manque quelque chose que je n’ai pas compris
merci pour votre aide!
cyril
Bonjour
Je pense que le spf n’est pas obligatoire si l’on utilise o365 en relai puisque le mail passera à travers les serveurs 365 qui sont eux déjà dans le spf
Bonjour,
Concernant l’IP publique, je ne suis pas certain de bien comprendre. Dans mn cas je suis paramétrer le SMTP pour les copieurs.
Est-ce que je peux utiliser une ip publique de mon pool qui n’est pas utilisée?
Cordialement,
Sébastien.
Bonjour, J’ai suivi la procédure j’arrivais a faire un telnet sur le port 25 et cela fonctionnait. depuis peu le telnet ne fonctionne plus et du le relai smtp non plus. avez vous une idée ?
merci
Interface office 365 à changé, cet article devient obsolète le paramétrage du connecteur se fait dans une autre interface qui a moin option ?
Bonjour,
Moi ce qui me dérange c’est ouvrir les flux à tous les appareils locaux pour aller sur internet
Pourriez vous me dire si y a une alternative ?
Merci