octobre
2010
Si vous souhaitez mettre en oeuvre mon tutoriel Installation et configuration d’Exchange 2010 sur une ligne Orange grand public, vous allez inévitablement être confronté à une restriction d’Orange. En effet, Orange ne permet que l’accès à son SMTP sur le port 25. Tout autre SMTP est injoignable sur ce port. Cela veut dire que vous ne pourrez pas envoyer d’emails à d’autres domaines que orange.fr. Personnellement, il m’arrive d’envoyer très souvent des emails à des gens qui ne sont pas chez Orange : comment leur envoyer un email alors que tous les SMTP sont filtrés sauf celui d’Orange ?
La première solution serait d’utiliser le port 587 (SMTPS) pour contacter les serveurs. Le problème est que tous les SMTP ne disposent pas forcément d’un port sécurisé. On pourra donc facilement tomber sur un SMTP non sécurisé et donc être dans une impasse.
La seconde solution est d’utiliser un serveur SMTP sécurisé (authentifiant) qui fasse relai. Les serveurs GMail proposent ce genre de service depuis longtemps mais ils ont l’inconvénient majeur de réécrire le champ Sender des emails pour y mettre l’adresse du compte GMail utilisé pour s’authentifier sur le serveur. Cela veut dire que vous ne pourrez pas envoyer d’emails provenant de votre domaine email.
Des registrar DNS fournissent des comptes email associés à votre domaine. C’est le cas de Gandi par exemple. Il vous suffit de créer un compte email sur l’interface d’administration pour avoir accès à leur SMTP sécurisé. On peut donc contourner la limitation de l’opérateur.
Une fois que vous avez votre compte, testez l’envoi d’email par ce SMTP avec votre client email. Cela permet d’être sûr que le compte fonctionne.
Maintenant, je vais vous expliquer comment configurer Exchange pour qu’il utilise un SMTP externe pour envoyer les emails. On va configurer le rôle transport hub pour router les messages vers un hôte actif grâce aux connecteurs d’envoi. On peut créer ce connecteur en mode graphique mais on ne peut pas sélectionner le port SMTP distant : cette opération ne peut s’effectuer qu’en Powershell. Vous devrez donc ouvrir Exchange Management Shell.
$creds = Get-Credential -Credential user@domain.com
# création du connecteur d'envoi
New-SendConnector -Name "Orange" -AddressSpaces "SMTP:*;1" -Usage "Internet" -SmartHosts "mail.gandi.net" -SmartHostAuthMechanism "BasicAuthRequireTLS" -RequireTLS $true -Port 587 -AuthenticationCredential $creds -Enabled $true
Une petite explication :
-Name : nom du connecteur dans Exchange
-AddressSpaces : l’espace de nommage pour déterminer si Exchange doit utiliser ce connecteur ou pas. Ici le connecteur va prendre en charge toutes les adresses SMTP avec un coût de 1. Attention au deux-points et point-virgule
-Usage : ça parle tout seul
-SmartHosts : serveur actif qui va prendre en charge les emails sortants d’Exchange. J’utilise le serveur gandi, à adapter pour coller à ta config.
-SmartHostAuthMechanism : permet de préciser la méthode d’authentification. Ici, il faut utiliser une authentification basique en forçant l’utilisation de TLS.
-RequireTLS : permet de forcer l’utilisation de TLS
-Port : c’est le paramètre qui n’est pas modifiable en mode graphique. On précise le port sécurisé standard (différent de 25 donc on contourne les restrictions orange)
-AuthenticationCredential : donne au connecteur les identifiants pour se connecter au serveur distant
-Enabled : active le connecteur
Si votre serveur ne supporte pas StartTLS, vous devrez indiquer à Exchange de ne pas utiliser StartTLS en utilisant cette commande en remplacement de la précédente :
$creds = Get-Credential -Credential user@domain.com
# création du connecteur d'envoi
New-SendConnector -Name "Orange" -AddressSpaces "SMTP:*;1" -Usage "Internet" -SmartHosts "ssl0.ovh.net" -SmartHostAuthMechanism "BasicAuth" -IgnoreSTARTTLS:$true -Port 587 -AuthenticationCredential $creds -Enabled $true
Il ne vous reste plus qu’à tester. Si les emails ne sortent pas, consultez la queue des messages dans la boîte à outils Exchange pour savoir ce qu’il se passe.
Voilà comment contourner une limitation (vraiment) stupide