Vous êtes ici

Envoi de mail en PHP par SMTP sur Windows Server 2012

Nous allons voir comment mettre en place un relai smtp sur Windows Server 2012 pour pouvoir envoyer des mails via PHP .

- Dans un premier temps, installons le nécessaire :

1) Le rôle SMTP Server :

2) Les services .NET nécessaires

3) Les outils IIS :

- Maintenant, lorsque l'on se connecte à notre Gestionnaire IIS et que nous sélectionnons notre serveur, nous observons l'apparition de SMTP E-mail :

- On sélectionne alors SMTP E-Mail et nous avons donc accés à un panel permettant de spécifier le serveur SMTP par lequel les applis pourront envoyer des mails :

- Lorsque vos applis PHP vont vouloir envoyer un mail, voici le code erreur que vous risquez d'avoir, c'est tout à fait normal. Windows interdit l'envoi de mail par SMTP par défault. Il va falloir créer un relais :

SMTP server response: 550 5.7.1 Unable to relay

- Pour créer un relai qui autorise le localhost à envoyer des e-mails par SMTP, copiez ce script dans un script.vbs :

Option Explicit
Dim smtpServer, relayIpList
' Get the default instance of the SMTP server
Set smtpServer = GetObject("IIS://localhost/smtpsvc/1")
' Get the IPList
Set relayIpList = smtpServer.Get("RelayIpList")
' Add localhost to that list
relayIpList.GrantByDefault = false
relayIpList.IpGrant = "127.0.0.1"
' Save changes
smtpServer.Put "RelayIpList",relayIpList
smtpServer.SetInfo

- Puis éxecutez ce script dans une fenetre PowerShell avec cette commande : cscript votre_script.vbs :

Vos applis en PHP peuvent dorénavant envoyer des e-mails en passant par le serveur SMTP que vous avez configuré.

Attention , le service SMTP ne démarre pas automatiquement par défaut sous Windows Server 2012

Tags: 

www.le-gas.fr : Le guide de l'admin Systeme