Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2208 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] edit : est-ce que la fonction mail() de PHP est un MUA ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] edit : est-ce que la fonction mail() de PHP est un MUA ?

n°854660
gentoouser
Posté le 21-09-2004 à 11:10:32  profilanswer
 

salut,
 j'administre un serveur Apache sur du GNU/Linux, qui est sur une DMZ avec un serveur smtp (pas sur la même machine!). Je voudrais utiliser la fonction mail() de PHP. J'ai lu le manual et regardé le /etc/php.ini. Souvent, ça parle de serveur SMTP à spéficier dans le php.ini, car sendmail ou postfix ou qmail etc ... peuvent/doivent être déja installé. Donc avoir un serv SMTP sur la même machine que l'interpréteur PHP.
 
Question : Pourquoi carrément installer un serveur SMTP sur la même machine que l'interpréteur PHP pour envoyer un simple message avec la fonction mail() ?
 
Un simple MUA sur le serv Web (interpréteur PHP) pourrait balancer le mail à mon SMTP de la DMZ ...  
 
Comment faire ?
 
Merci d'avance
 
ps edit : je spécifierais bien le SMTP dans le php.ini, mais :
 
 
[mail function]
; For Win32 only.
SMTP = localhost
 
 
donc je suppose qu'il faut forcement avoir un stmp localhost ... *confusion*  ?!?!?!?!


Message édité par gentoouser le 28-09-2004 à 16:42:19
mood
Publicité
Posté le 21-09-2004 à 11:10:32  profilanswer
 

n°854843
DjobaDjobi
Wanna turn up the heat?
Posté le 21-09-2004 à 14:10:26  profilanswer
 

up

n°854845
DjobaDjobi
Wanna turn up the heat?
Posté le 21-09-2004 à 14:11:59  profilanswer
 

en fait sous win32, l'envoi de mail fait appel a une api. ya pas d'equivalent sous unix :/
il faut monter un sendmail ou qmail en relais sur la machine
c lourd si kk1 a une meilleur solution ?


Message édité par DjobaDjobi le 21-09-2004 à 14:12:33
n°854850
gentoouser
Posté le 21-09-2004 à 14:15:41  profilanswer
 

hmm, ça colle pas trop avec ce que je vois pour le fichiers de conf et le manual. Je vois qu'avec win32 tu peux spéficier un smtp, mais parceque ils supposent qu'il n'y a pas d'smtp localhost installé. Donc les utilisateurs de win mettent smtp.wanadoo.fr etc ...
 
Sur phpManual :
 
 The Windows implementation of mail() differs in many ways from the Unix implementation. First, it doesn't use a local binary for composing messages but only operates on direct sockets which means a MTA is needed listening on a network socket (which can either on the localhost or a remote machine).

n°855810
gentoouser
Posté le 22-09-2004 à 17:34:01  profilanswer
 

uuup

n°855817
simogeo
j'ai jamais tué de chats, ...
Posté le 22-09-2004 à 17:49:18  profilanswer
 

euhh je pense que tu peux setter le SMTP depuis le php.ini sans que ca pose de problèmes.
Si ce n'est pas le cas, le codeur le fera via son script php


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°855839
rufo
Pas me confondre avec Lycos!
Posté le 22-09-2004 à 18:22:25  profilanswer
 

drapal

n°856184
gentoouser
Posté le 23-09-2004 à 08:14:46  profilanswer
 

bah ils mettent "win32 only", donc je suppose qu'une plat. unix n'en tiendra pas compte. Ils disent que ça "use a local binary for composing messages" sur une plat. unix. Ouais ok, mais pourquoi pas un MUA (mail? ) plutôt qu'un MTA (smtp etc ..). Ils disent que par défaut, c'est "sendmail" qui va être utilisé, et sendmail *est* du postfix, même les man pages n'en disent pas vraiment long il me semble ..

n°856515
simogeo
j'ai jamais tué de chats, ...
Posté le 23-09-2004 à 15:58:46  profilanswer
 

j'ai déjà monté un serveur apache avec php sur debian sans sendmail (pour un intranet) tout en utilisant la fonction mail....:o
 
du reste :  
 

simogeo a écrit :

euhh je pense que tu peux setter le SMTP depuis le php.ini sans que ca pose de problèmes.
Si ce n'est pas le cas, le codeur le fera via son script php


 
 
et si tu ne veux rien entendre alors pourquoi tu postes ici ...(?)
 


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°856519
DjobaDjobi
Wanna turn up the heat?
Posté le 23-09-2004 à 16:03:02  profilanswer
 

simogeo a écrit :

j'ai déjà monté un serveur apache avec php sur debian sans sendmail (pour un intranet) tout en utilisant la fonction mail....:o
 
du reste :  
 
 
 
 
et si tu ne veux rien entendre alors pourquoi tu postes ici ...(?)


 
tout ca nous dis pas comment tu t'y est pris  :ange:  
 
steupléé

mood
Publicité
Posté le 23-09-2004 à 16:03:02  profilanswer
 

n°856539
simogeo
j'ai jamais tué de chats, ...
Posté le 23-09-2004 à 16:20:37  profilanswer
 

DjobaDjobi a écrit :

tout ca nous dis pas comment tu t'y est pris  :ange:  
 
steupléé


 
 
 
J'utilisais la classe phpmailer (http://phpmailer.sourceforge.net/) en précisant que j'envoyais mon mail en smtp et en lui précisant évidemment l'host.
Il me semble que je n'avais rien setté au niveau du php.ini (sté sur un intranet chez un ancien employeur et j'ai plus accès à ce php.ini[:itm])


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°856561
gentoouser
Posté le 23-09-2004 à 16:44:15  profilanswer
 

simogeo a écrit :

j'ai déjà monté un serveur apache avec php sur debian sans sendmail (pour un intranet) tout en utilisant la fonction mail....:o
 
du reste :  
 
et si tu ne veux rien entendre alors pourquoi tu postes ici ...(?)


 
doucement, je disais juste, en gros, que le php manual ne parlait que de spéficier le chemin vers le SMTP ("sendmail_path" dans php.ini), donc ça suppose qu'il est localhost le smtp, et qu'il faut ce smtp pour envoyer un mail. Mais bon, je vais essayer quand même de préciser le SMTP de la DMZ dans le php.ini, même si ya écrit FOR WIN32 USER ONLY à coté en gros.

n°856566
DjobaDjobi
Wanna turn up the heat?
Posté le 23-09-2004 à 16:49:50  profilanswer
 

simogeo a écrit :

J'utilisais la classe phpmailer (http://phpmailer.sourceforge.net/) en précisant que j'envoyais mon mail en smtp et en lui précisant évidemment l'host.
Il me semble que je n'avais rien setté au niveau du php.ini (sté sur un intranet chez un ancien employeur et j'ai plus accès à ce php.ini[:itm])


 
oké donc tu n'utilisais pas la fonction mail de php :/

n°856580
simogeo
j'ai jamais tué de chats, ...
Posté le 23-09-2004 à 17:09:07  profilanswer
 

DjobaDjobi a écrit :

oké donc tu n'utilisais pas la fonction mail de php :/


 
phpmailer (c'est une classe) utilise la fonction mail() de php ! Elle simplifie et étend son usage.
 
 
gentoouser > oki oki  ;)  


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°856600
DjobaDjobi
Wanna turn up the heat?
Posté le 23-09-2004 à 17:30:03  profilanswer
 

non je viens de matter le code de la class en question, elle utilise les socket pour se connecter au serv smtp
 
 

      $this->smtp_conn = fsockopen($host,    # the host of the server
                                     $port,    # the port to use
                                     $errno,   # error number if any
                                     $errstr,  # error message if any
                                     $tval);   # give up after ? secs

n°856605
simogeo
j'ai jamais tué de chats, ...
Posté le 23-09-2004 à 17:34:30  profilanswer
 

exacto, autant pour moi.
 
Mais quel problème cela te pose à l'utilisation ?


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°856606
DjobaDjobi
Wanna turn up the heat?
Posté le 23-09-2004 à 17:34:52  profilanswer
 

le pb est d'envoyer des mails depuis une appli (phpbugtracker par ex) sans  avaoir a rentrer dans le code.
 
la solution est peut être de dééactiver la fonction mail(), la rrecrire avec la class par exemple, puis de l'include dans l'index.php de l'appli


Message édité par DjobaDjobi le 23-09-2004 à 17:37:05
n°856612
aspegic500​mg
Posté le 23-09-2004 à 17:42:51  profilanswer
 

Le problème c'est de l'inclure, ca rends moins portable le code écrit pour ce serveur web :(  
Niveau performances, c'est certainement un peu moins bon aussi (enfin ca dépends du nombre de mails envoyés chaque jour, si c'est dix ou dix milles c'est pas la meme chose...)

n°856617
simogeo
j'ai jamais tué de chats, ...
Posté le 23-09-2004 à 17:49:51  profilanswer
 

DjobaDjobi > c'est une solution ué
 
aspegic500mg > pour la portabilité, tu peux dans ton code tester l'activation de la fonction mail()


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°856644
aspegic500​mg
Posté le 23-09-2004 à 18:13:24  profilanswer
 

simogeo a écrit :

DjobaDjobi > c'est une solution ué
 
aspegic500mg > pour la portabilité, tu peux dans ton code tester l'activation de la fonction mail()


 
Oui c'est vrai, mais si elle est vraiment necéssaire au fonctionnement du site, c'est génant :/
(je me vois mal laisser l'inscription de certains site sans vérifier le mail)

n°858855
gentoouser
Posté le 28-09-2004 à 10:37:27  profilanswer
 

la question que je me pose en fait c'est "est-ce que la fonction mail() de PHP est un MUA ?"
 
Je viens de faire plusieurs test, en mettant le smtp (dans /etc/php.ini) d'une machine distante (dans la DMZ)  . Si postfix est lancé sur la machine locale, les mails arrivent a destination, si postfix est stopped, les mails n'arrivent pas. Dès que je relance postfix, les mails partent (ils étaient queued dans /var/spool/postfix/maildrop)


Message édité par gentoouser le 28-09-2004 à 10:40:36
n°859356
aspegic500​mg
Posté le 28-09-2004 à 18:30:28  profilanswer
 

gentoouser a écrit :

la question que je me pose en fait c'est "est-ce que la fonction mail() de PHP est un MUA ?"
 
Je viens de faire plusieurs test, en mettant le smtp (dans /etc/php.ini) d'une machine distante (dans la DMZ)  . Si postfix est lancé sur la machine locale, les mails arrivent a destination, si postfix est stopped, les mails n'arrivent pas. Dès que je relance postfix, les mails partent (ils étaient queued dans /var/spool/postfix/maildrop)


 
Mais alors il est sur la meme machine que le serveur web ou pas  :??: (jpense que non parce qu'installer postfix sous windows euh bof :whistle: )

n°859417
naceroth
Posté le 28-09-2004 à 20:05:37  profilanswer
 

aspegic500mg a écrit :

(jpense que non parce qu'installer postfix sous windows euh bof :whistle: )


 
Sous win, tu n'as pas le problème, tu règles le SMTP dans le fichier de config comme bon te semble (par exemple sur ma bécane perso, c'est celui de mon FAI)

n°859495
aspegic500​mg
Posté le 28-09-2004 à 21:46:22  profilanswer
 

naceroth a écrit :

Sous win, tu n'as pas le problème, tu règles le SMTP dans le fichier de config comme bon te semble (par exemple sur ma bécane perso, c'est celui de mon FAI)


 
ah ben oui exact :o  
 
Enfin je me pose les question à titre indicatif car de toutes facons je n'ai qu'une seule bécane linux donc tout sera sur le mmee, mais en entreprise il pourait m'arriver de devoir utiliser un serveur mail externe donc ca m'interresse :)

n°860750
gentoouser
Posté le 30-09-2004 à 10:30:32  profilanswer
 

aspegic500mg a écrit :

Mais alors il est sur la meme machine que le serveur web ou pas  :??: (jpense que non parce qu'installer postfix sous windows euh bof :whistle: )


 
ok, il y a une DMZ. Dans cette DMZ, il y a un serv SMTP (Exchange..), et un serv WEB (Apache/php/mysql) sous MDK.
 
Dans la config de /etc/php.ini, je dois mettre un smtp. J'avais localhost avant, car partout dans le php manual ils parlent de "postfix" ou "sendmail", et il y a postfix qui est installé, et qui tourne. De cette façon, ça marche, les mails sont envoyés du smtp local (le postfix!), vers le smtp exchange.  
Ce que je voudrais, et voudrais comprendre, c'est pourquoi il faut installer forécement un SMTP sur la même machine (le postfix la... je veux pas de 2 smtp pour balancer des mails en local quand même!) ?!?!?!  
 
DONC, dans /etc/php.ini, j'ai changé "localhost", par le nom du serv SMTP exchange. La ça marche, SAUF QUE  postfix doit être "actif" (loaded) sur la machine locale. je fais un "/etc/init.d/postfix stop", les mails n'arrivent plus a destination, et je les retrouve dans /var/spool/postfix/maildrop ... Biensûr, dès que je redémare le postfix, les mails sont balancés (ils étaient queued dans maildrop).  
 
D'où ma question "est-ce que la fction mail() de PHP est un MUA à part entière ?!" et si oui comment faire en sorte que toute cette m***** s'harmonise ;)


Message édité par gentoouser le 30-09-2004 à 10:32:04
n°860961
rufo
Pas me confondre avec Lycos!
Posté le 30-09-2004 à 13:34:52  profilanswer
 

je sais pas si ça peut aider, mais j'ai un outil qui tourne sur une DMZ en Redhat et j'ai mis le nom d'une machine dans SMTP de php.ini. En effet, c'est sur cette machine que tourne mon serveur de mail et ça marche.

n°860986
gentoouser
Posté le 30-09-2004 à 14:17:14  profilanswer
 

ok. Donc tu as 2 machines, l'une ton SMTP(1), et l'autre où est installé PHP(2), avec le SMTP(1) dans php.ini, c'est bien ça?
Si oui, as-tu un SMTP sur la machine où est installé PHP(2) ?
Si oui, si tu arrêtes ce service SMTP sur (2), ça marche toujours ?
 
Merci


Message édité par gentoouser le 30-09-2004 à 14:17:51
n°862052
rufo
Pas me confondre avec Lycos!
Posté le 01-10-2004 à 13:39:51  profilanswer
 

c'est bien comme tu dis. n'étant pas maître de la conf du serveur, je ne pourrais pas te certifier qu'il n'y a pas de smtp, mais à mon avis, il n'y en a pas sur la machine où y'a php.ini.

n°864143
gentoouser
Posté le 04-10-2004 à 13:59:45  profilanswer
 

tu peux essayer de vérifier cette hypothèse s'il te plaît ?

n°865778
gentoouser
Posté le 06-10-2004 à 09:02:24  profilanswer
 

upppp !

n°866999
rufo
Pas me confondre avec Lycos!
Posté le 07-10-2004 à 12:34:05  profilanswer
 

Donc sur ma machine je n'ai que sendmail (donc son smtp à lui, mais pas d'autre smtp). C'est dans le fichier de conf de sendmail qu'il faut donner l'adresse du serveur smtp distant. Pareil dans php.ini. C'est tout ce qu'il faut faire :)

n°867175
aspegic500​mg
Posté le 07-10-2004 à 16:14:37  profilanswer
 

rufo a écrit :

Donc sur ma machine je n'ai que sendmail (donc son smtp à lui, mais pas d'autre smtp). C'est dans le fichier de conf de sendmail qu'il faut donner l'adresse du serveur smtp distant. Pareil dans php.ini. C'est tout ce qu'il faut faire :)


 
Ah ok, merci d'avoir regardé, ca pourrait me servir plus tard :)

n°869814
gentoouser
Posté le 11-10-2004 à 09:38:38  profilanswer
 

mais pourquoi y aurait-il besoin d'un MTA pour envoyer un mail ???!!!

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] edit : est-ce que la fonction mail() de PHP est un MUA ?

 

Sujets relatifs
[PHP & HTML] Paramètre et méthode GET[perl] script cgi pour envoie de mail
[apache][php] Configure command[PHP - Debutant] Comment telecharger un fichier?
debutant , comment executer un fichier phpservices windows via php
[javascript]Positionner 1menu en fonction de la disposition de la pageSon ip dans Un mail
[PHP] récupérer l'urlProbleme d'affichage des accents PHP/XML
Plus de sujets relatifs à : [PHP] edit : est-ce que la fonction mail() de PHP est un MUA ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR