Page 1 sur 1
problème pour envoyer des mails en php sous linux
Posté : 03 janv. 2007, 02:05
par ritpas
Bonjour et bonne année!
Je sais que c'est un sujet fréquent, et ça fait plus de deux heures que je parcours le forum sans trouver de vrai réponse.
Alors voilà, j'ai installé un apache et php5 sous Linux.
Mes application web en php fonctionnent mais je n'arrive pas à envoyer de mails avec les la fonction mail(). Les mails ne sont pas reçu.
Dans php info, j'ai "sendmail_path /usr/lib/sendmail ".
On me parle de serveur smtp sous linux, à moins que ça ne soit installé par défaut, je crois que j'en ai pas d'installé.
Par ailleurs, est-il possible sous Linux d'utiliser le serveur smtp de mon FAI? Je sais que sous windows, on modifie le php.ini, et on met l'adresse smtp ex smtp.wanadoo.fr. C'est donc simple, mais sous Linux, comment procéder?
est-ce donc si compliqué d'envoyer des mails en php sous Linux?
Merci pour votre aide
Posté : 03 janv. 2007, 03:03
par fab
Bah pareil

Posté : 03 janv. 2007, 20:00
par ritpas
Ok j'ai un peu avancé : en fait sendmail n'était pas installé.
Là je viens de l'installer, par contre mes mails ne s'envoie toujours la fonction mail retourne à chaque fois FALSE.
J'ai redémarré mon apache.
Que dois-je faire?
Y a-t-il un paramétrage supplémentaire à faire de sendmail?
merci d'avance
Posté : 03 janv. 2007, 20:41
par mojorisin
Salut,
je pense que si tu installe sendmail à l'aide d'un package de distribution il ne devrais pas y avoir de parametrage à faire.
Si tu l'as compiler il te faudra mettre les mains dans le camboui (fichier sendmail.cf) et je te souhaite bonne chance.
Il y a un livre d'environ 500 pages sur sendmail chez o'reilly si jamais
Vérifie ton php.ini afin que le chemin vers sendmail soit exact et contienne également au minimum l'argument -t
sendmail_path = /chemin/vers/sendmail -t
Posté : 03 janv. 2007, 20:49
par ritpas
J'ai installé sendmail via apt-get install sendmail. Donc je suppose qu'il a la config par défaut, je n'ai rien modifié.
Par contre, un truc bizarre : phpinfo me donne le chemin suivant pour sendmail :
sendmail_path /usr/lib/sendmail
Quand j'effectue une modif dans le php.ini se trouvant dans etc/php5.0/php.ini, la modification n'est pas prise en compte dans le phpinfo(). Pourtant je suppose que ce dernier se réfère bien à ce php.ini, ou bien?
J'ai rajouté -t dans le chemin de sendmail, mais en lançant phpinfo ça ne semble pas pris en compte.
Posté : 03 janv. 2007, 20:56
par mojorisin
Je pense que le php.ini est dans :
etc/php5.0/apache2/php.ini si apache2 installé
etc/php5.0/apache/php.ini si apache1.x installé
Pour le chemin de sendmail utilise la commande whereis ou locate dans une console :
$ locate sendmail
Posté : 03 janv. 2007, 21:32
par ritpas
merci pour ton aide!
Code : Tout sélectionner
zenith:~# locate sendmail
/home/pascal/php-5.1.4/netware/sendmail_nw.h
/home/pascal/php-5.1.4/win32/sendmail.c
/home/pascal/php-5.1.4/win32/sendmail.h
/usr/lib/sendmail
/usr/sbin/sendmail
/usr/share/man/man8/sendmail.8.gz
zenith:~#
pour le php.ini :
Code : Tout sélectionner
zenith:~# locate php.ini
/etc/php5.0/apache2/php.ini
/home/pascal/php-5.1.4/php.ini-dist
/home/pascal/php-5.1.4/php.ini-recommended
/usr/share/doc/php4-common/examples/php.ini-dist
/usr/share/doc/php4-common/examples/php.ini-paranoid
/usr/share/doc/php4-common/examples/php.ini-recommended
/usr/share/doc/php5.0-common/examples/php.ini-dist.gz
/usr/share/doc/php5.0-common/examples/php.ini-recommended.gz
/usr/share/php4/php.ini-dist
/usr/share/ucf/libapache2-mod-php5.0/etc/php5.0/apache2/php.ini
/var/lib/ucf/cache/:etc:php5.0:apache2:php.ini
zenith:~#
Je suppose que c'est bien celui se trouvant dans etc/php5.0/apache2/ qui est à modifier pourtant en le modifiant phpinfo ne semble pas prendre en compte les modifs... Bizarre.
Sinon est-il possible de tester sendmail en ligne de commande unix?
Posté : 03 janv. 2007, 21:33
par Ajoloca
Pour que les modifications faites dans php.ini il faut redémarrer Apache.
Pour être sur que tu modifies le bon php.ini regarde le chemin dans phpinfo().
Posté : 03 janv. 2007, 21:43
par ritpas
le chemin défini dans phpinfo() est bien le bon, donc il devrait prendre en compte les modifs.
Décidément, je suis vraiment novice en linux, pour restarter linux, j'utilise apachectl restart mais ne suis pas sûr qu'il ait vraiment redémarré d'après le message que j'ai obtenu :
Code : Tout sélectionner
zenith:/etc/apache2# apachectl restart
httpd not running, trying to start
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs
zenith:/etc/apache2#
Le phpinfo (
www.lemarcaire.fr/phpinfo.php), ne s'est toujours pas mis à jour avec sendmail -t que j'ai configuré dans le php.ini
Mais je ne suis pas sûr que le pb provienne vraiment de ça..
Posté : 03 janv. 2007, 23:29
par mojorisin
Pour redémarrer apache :
/etc/init.d/apache2 restart
Posté : 04 janv. 2007, 01:29
par ritpas
ok, c'est fait, et le nouveau parametrage a été pris en compte.
Ca avance, car maintenant la fonction mail() s'execute sans erreur.
C'est comme si le mail s'envoyait mais le destinataire ne reçoit toujours rien!
Posté : 04 janv. 2007, 08:44
par Xenon_54
As-tu des erreurs ou une confirmation de l'envoi dans le maillog?
Est-ce que ton email s'ajoute bien à la mail queue de ton serveur?
As-tu un serveur mail?

Posté : 04 janv. 2007, 09:55
par ritpas
Comment consulte-t-on les mail logs?
en fait, j'ai juste programmé une condition :
Code : Tout sélectionner
if (mail($mail_destinataire,$mail_sujet, $mail_contenu)){
echo 'Mail envoyé<br />';
}else{
echo 'Echec de connexion<br />';
}
Ca me renvoie : 'Mail envoyé' alors que avant ça me mettait systématiquement 'echec de connexion'
Quant au serveur mail, justement, non je n'en ai pas, je croyais que sendmail suffisait. En fait il me faut juste un serveur SMTP pour l'envoi. Je pourrais utiliser celui de mon FAI, mais comment lui indiquer?
Posté : 04 janv. 2007, 16:36
par Xenon_54
Sous linux, il faut un serveur de courriel. Vérifie si sendmail fonctionne bel et bien.
Cependant, je ne peux pas très familier avec sendmail. Je ne pourrai donc pas te guider sur sa configuration.
Posté : 05 janv. 2007, 11:06
par ritpas
Je vais voir pour installer un serveur mail. J'ai essayer de voir trouver des tutos sur le net, mais c'est pas terrible. Ca me semble assez compliqué.
Merci quand même!