Salut,
Voici un petit bout de code pour envoyer un mail en PHP :
J'ai uploadé cette page : testmail.php sur un serveur Free pour tester son fonctionnement, et ça marche sans problème, l'adresse "test_to@xxxx.com" reçoit bien l'email (et même pas en tant que spam, si c'est pas beau... ).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <?php //=====Déclaration des messages au format texte et au format HTML $message_txt = "Salut à tous, voici un e-mail envoyé par un script PHP."; $message_html = "<html><head></head><body><b>Salut à tous</b>, voici un e-mail envoyé par un <i>script PHP</i>.</body></html>"; //========== //=====Création de la boundary $boundary = "-----=".md5(rand()); //========== //=====Définition du sujet $sujet = "Hey mon ami !"; //========= //=====Création du header de l'e-mail $header = "From: \"Test\"<test_from@xxxx.fr>\n"; $header.= "MIME-Version: 1.0\n"; $header.= "Content-Type: multipart/alternative;\n boundary=\"$boundary\"\n"; //========== //=====Création du message $message = "\n--".$boundary."\n"; //=====Ajout du message au format texte $message.="Content-Type: text/plain;\n charset=\"ISO-8859-1\"\n"; $message.="Content-Transfer-Encoding: 8bit\n"; $message.= $message_txt."\n"; //========== $message.= "\n--".$boundary."\n"; //=====Ajout du message au format HTML $message.="Content-Type: text/html; charset=\"ISO-8859-1\"\n"; $message.="Content-Transfer-Encoding: 8bit\n"; $message.= $message_html."\n"; //========== $message.= "\n--".$boundary."--\n"; $message.= "\n--".$boundary."--\n"; //========== //=====Envoi de l'e-mail mail("test_to@xxxx.com",$sujet,$message,$header); //========== ?>
Donc sur le serveur de Free, aucun problème.
Maintenant, lorsque je met cette même page en interne (dans un réseau "d'entreprise"), ça ne marche pas... Petite précision, la page en question n'est accessible qu'en interne, aucun accès possible depuis l'extérieur.
Le serveur sur lequel se trouve cette page à évidement accès à internet mais doit passer par un proxy (un autre serveur).
Le problème vient-il de cet autre serveur ? Faut-il ouvrir des ports spéciaux ? Lorsque je me connecte avec mon ordinateur personnel sur ce réseau, mon client mail fonctionne sans problème, donc sur le serveur proxy, le port SMTP doit être ouvert...
Autre solution possible, le problème ne viendrait pas du proxy mais du serveur ou j'ai mit ma page "testmail.php", faut-il activer un module php précis ? Car la fonction ne me génère pas d'erreur sur la page, elle est bien présente (quand je ne rentre pas tous les paramètre elle me génère une erreur en me disant que la fonction Mail() ne prend pas/a besoin d'autres arguments).
Autre soucis, j'ai essayé de regarder dans les logs et je n'ai rien vu qui cloché (mais je n'ai peut-être pas regardé les bon fichiers de logs)...
Ca vient peut-être d'une conf spéciale des virtual host ? Je ne sais pas, avez-vous des idées ?
Bref merci d'avance pour votre aide !
Partager