Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/07/2008, 18h12   #1
Membre du Club
 
Inscription : mars 2007
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 224
Points : 51
Points : 51
Par défaut [Mail] Envoi d'email bloqué

Bonjour à tous,

Actuellement, je suis en train d'utiliser la fonction mail() de PHP, seulement voilà l'envoi de mail ne ce fait pas .

Je vous montre l'extrait du code du fichier de php.ini de notre serveur linux en ce qui concerne les paramétrages de la fonction mail :

Code X :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
[mail function]
; For Win32 only.
;SMTP = localhost
SMTP = nomserveur
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com
sendmail_from = mail@domaine.fr

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
;sendmail_path = /usr/sbin/sendmail -t -i

; Force the addition of the specified parameters to be passed as extra parameters
; to the sendmail binary. These parameters will always replace the value of
; the 5th parameter to mail(), even in safe mode.
;mail.force_extra_parameters =

ainsi que le code source permettant d'envoyer un mail :

Code :
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
function EnvoyerUnEMail($civ, $nom, $prenom, $id, $mdp){
 
	//Préparation du corps du message
	$email = "<html>";
	$email = $email . "<head>";
	$email = $email . "<title></title>";
	$email = $email . "</head>";
	$email = $email . "<body>";
	$email = $email . "<br>";
	$email = $email . "Bonjour $civ $prenom $nom ,<br>";
	$email = $email . "Voici le rappel de vos identifiants de connexion :<br><br>";
	$email = $email . "Votre identifiant : $id <br>";
	$email = $email . "Votre mot de passe : $mdp <br><br>";
	$email = $email . "Conservez les bien précieusement, vos identifiants de connexion permettent de :<br>";
	$email = $email . "- Passer des commandes en ligne,<br>";
	$email = $email . "- Suivre vos commandes,<br>";
	$email = $email . "- D'identifier les numéros de tracking de vos colis, <br>";
	$email = $email . "- De modifier votre profil (adresse de facturation et de livraison).<br><br>";
	$email = $email . "</body>";
	$email = $email . "</html>";
 
 
 
	$head  = 'MIME-Version: 1.0' . "\r\n";
     $head .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
 
     // En-têtes additionnels
     $head .= 'To: '.$prenom.' '.$nom.' <'.$id.'>' . "\r\n";
     $head .= 'From: mail@domaine.fr<mail@domaine.fr>' . "\r\n";
 
	if(mail($id,'- Sujet.', $email,$head)){header("Location: mdp.php?valeur=1");
	}	
 
}
Y aurait-il d'autres configurations à effectuer pour l'envoi de mails, sachant que notre serveur web apache utilise redhat enterprise 5.1 ?


En vous remerciant d'avance.
marcandre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 16h41   #2
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Peux-tu décrire, ta configuration ?
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/07/2008, 17h58   #3
Membre du Club
 
Inscription : mars 2007
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 224
Points : 51
Points : 51
J'utilise :
php 5.1.6
apache 2.2.3
En système d'exploitation nous avons RedHat Enterprise 5.1 Server .

En ce qui concerne l'envoi des messages, notre serveur de messagerie est sous windows (j'ai indiqué un de ses noms de domaine dans le fichier php.ini) en production et joue le rôle du serveur smtp.

En ce moment notre serveur web qui tourne sous linux est en phase de test.

Je me demande est-ce que la fonction mail() ferai appel au sendmail de linux et si c'est le cas, j'ignore comment faut-il faire pour configurer.

Cordialement.
marcandre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 11h20   #4
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Ce qui est important c'est de bien indiquer le serveur SMTP :
Code :
1
2
3
4
5
6
 
[mail function]
; For Win32 only.
;SMTP = localhost
SMTP = nomserveur
smtp_port = 25
As-tu essayé un Telnet pour vérifier que tu as bien accés au serveur Windows ?

As-tu un temps de latence important avant l'envoi ?

As-tu jeter un oeil au log de Linux ?
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 15h27   #5
Membre du Club
 
Inscription : mars 2007
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 224
Points : 51
Points : 51
Bonjour,

Je m'y connais peu en réseau, pourrais tu me montrer comment utiliser Telnet pour mon cas ?

J'ai au moins un délais 2 minutes d'exécution et encore, le mail n'arrive pas à destination.

Je souhaite savoir où est-ce qu'on peut trouver le log concerné ? Est ce que serai celui du répertoire httpd (il en a plusieurs) ?
marcandre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 15h36   #6
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
2mn c'est énorme, peux-tu me dire si les machines sont sous le meme reseau ?
Il faut que tu vérifies que le serveur Linux a bien acces au serveur Windows (parfeu, permissions...)

Essaye deja de faire un ping xxx.xxx.xxx.xxx du serveur linux vers le serveur Windows.

Sinon tu fais un Telnet comme ceci telnet domain.ext 25
Si tu recois quelques choses c'est que ton serveur SMTP est accessible.

Pour le log coté linux, ca depend de la version de Linux, essaye /var/log/mail
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 16h44   #7
Membre du Club
 
Inscription : mars 2007
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 224
Points : 51
Points : 51
Pour le moment la machine linux n'est pas sous le même réseau que le serveur windows.

En effectuant un telnet, j'ai le message suivant :
Citation:
telnet nom_domain 25
Trying xxx.xxx.xxx.xxx...
telnet: connect to address xxx.xxx.xxx.xxx: Connection timed out
telnet: Unable to connect to remote host: Connection timed out
Je suis allé voir dans le fichier /var/mail/root je n'ai rien trouvé en ce qui concerne l'essai d'envoi de mail que j'ai fait pour aujourd'hui.
marcandre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 16h59   #8
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
A priori ca n'a rien avoir avec PHP ton serveur Linux n'arrive pas a accéder a ton serveur Windows. Il faut que tu vérifies les permissions et le firewall sur le serveur Windows.

Ca explique le long timeout.
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 17h37   #9
Membre du Club
 
Inscription : mars 2007
Messages : 224
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 224
Points : 51
Points : 51
En ce qui concerne les permissions et le firewall :

Est ce qu'il y a un moyen d'authentification (login et mot de passe) quelque part pour l'utilisation du smtp et l'envoi des mails par des pages php; comme pour l'envoi de mail via un webmail ou un logiciel de messagerie ?

Où est ce que je pourrai vérifier les permissions ?
marcandre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/07/2008, 17h48   #10
Membre émérite
 
Inscription : septembre 2007
Messages : 951
Détails du profil
Informations forums :
Inscription : septembre 2007
Messages : 951
Points : 948
Points : 948
Je ne sais pas, il faut que tu te renseignes aupres de la personne qui a installer le serveur SMTP sur ton serveur Windows.

L'envoie de mail n'est pas lié a PHP ou a quelconque programme tiers.

A priori ton serveur Linux ne peut pas se connecter au serveur Windows le probleme vient d'ailleurs. Essaye de faire un ping xxx.xxx.xxx.xxx
batataw est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h37.


 
 
 
 
Partenaires

Hébergement Web