Bonjour,
Post by yottala question justement c'était de savoir si on peut coder quelque chose en
PHP
pour s'affranchir d'un "service smtp" ou bien faire blabla avec le "smtp du
fai".
1. Communiquer avec un serveur SMTP externe, genre celui de son FAI :
Je vais commencer par le plus simple, le blabla avec le SMTP du FAI. En
PHP, inutile de réinventer l'eau tiède, la fonction mail() est faite
pour ça :
La fonction :
http://php.net/manual/fr/function.mail.php
Des explications pour coder : ce site n'es pas toujours parfait, mais il
est destiné aux débutants, les explications sont claires et données pas
à pas :
https://openclassrooms.com/courses/e-mail-envoyer-un-e-mail-en-php
Le défaut de la chose est qu'il faut avoir un serveur PHP qui tourne, et
qu'appeler la fonction autrement que depuis un script PHP est compliqué.
Pour s'affranchir ce ces deux contraintes, il faudra compiler la bête
pour la transformer en un service windows appelable par le client mail
(voir plus bas).
2. Créer un serveur SMTP en PHP :
Les échanges SMTP entre le client (ta machine) et le serveur qui recevra
le message adressé au destinataire puis le lui transmettra (ou pas mais
c'est une autre histoire) sont définis par une RFC.
Des explications générales ici :
https://fr.wikipedia.org/wiki/Simple_Mail_Transfer_Protocol
Des explications détaillés là :
http://www.bortzmeyer.org/5321.html
Et enfin La RFC 5321 en question (pas trouvé de traduction française) :
https://tools.ietf.org/html/rfc5321
Donc la réponse est oui, tu peux coder ça en PHP.
La question suivante est « est-ce une bonne idée ? »
J'aurais tendance à répondre que non, parce que :
- ça ne doit pas être de la tarte à coder proprement, et si tu ne
respectes pas la RFC à la lettre, le serveur d'en face risque
de t'envoyer promener ;
- ça implique que ta machine dispose d'une IP fixe, ou au moins
d'un nom de domaine géré par un DNS dynamique genre noip, sinon le
serveur qui reçoit ne pourra pas identifier l'émetteur et risque
de refuser le courrier (SPAM potentiel, etc.) ;
- tu vas devoir créer un service au sens Windows, appelable par
les logiciels ayant besoin d'envoyer des emails, typiquement
ton client Email (Windows-Mail, Thunderbird, etc.), donc compiler
ton code PHP, ses dépendances, etc., pour en faire (je simplifie) une
DLL appelable par ces logiciels, loin d'être de la tarte non plus.
3. Installer un serveur SMTP sur sa machine [*] :
Personnellement, je m'orienterais plutôt vers cette solution pour faire
ce boulot, j'en connais deux pour Windows, Hamster et Mercury.
- Hamster (libre, open source) :
Explications :
http://framasoft.net/article120.html
Site officiel et téléchargement :
http://sourceforge.net/projects/hamster-fr/
D'après la doc, il est sensé fonctionner jusqu'à Windows XP. À toi de
tester s'il fonctionne avec ta version, éventuellement en mode
compatibilité.
- Mercury (non libre, gratuit pour usage personnel, en anglais) :
Mercury est développé et maintenu par David Harrys, le concepteur de
Pegasus Mail, que j'utilise depuis 1997 et me donne entière satisfaction
malgré son ergonomie un peu déroutante au début, qui s'avère
fabuleusement pratique au fil du temps, smais je m'égare.
Site officiel et explications (en anglais) :
http://www.pmail.com/overviews/ovw_mercury.htm
Téléchargement :
http://www.pmail.com/downloads_s3_t.htm
Je te suggère de télécharger et de tester les deux.
Peut-être en existe-t-il d'autres, je te laisse chercher si tu veux,
mais ces deux là, je sais qu'ils fonctionnent bien et qu'on peut leur
faire confiance.
Bon courage :)
[*] Pour les questions concernant les serveurs SMTP, ainsi que pour les
aspects purement SMTP associés à PHP, je te suggère de poster
dans <news:fr.comp.mail.serveurs>. Pour Mercury, il y a aussi
<news:comp.mail.pegasus-mail.ms-windows> (s'y exprimer en anglais
est impératif).