Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

fonction mail, champ from

8 réponses
Avatar
Laurent
Bonjour le monde !

Voilà, j'utilise un script php sur mon serveur web perso (apache/w32),
couplé avec mon serveur smtp perso, permettant aux gens qui passent de
m'envoyer un mail (le to: est donc en dur, c'est le from: qui est saisi
dans le formulaire).

Seulement, systematiquement, le from transmis au serveur smtp est
me@localhost.com, malgré le fait que le bon from est passé en paramètre
de la fonction mail.

1) est-ce normal ?
2) si oui, comment contourner ça ?

merci !
Laurent.

8 réponses

Avatar
Nicklas
Le Tue, 06 Apr 2004 18:06:05 +0000, Laurent a écrit :

Bonjour le monde !

Voilà, j'utilise un script php sur mon serveur web perso (apache/w32),
couplé avec mon serveur smtp perso, permettant aux gens qui passent de
m'envoyer un mail (le to: est donc en dur, c'est le from: qui est saisi
dans le formulaire).

Seulement, systematiquement, le from transmis au serveur smtp est
, malgré le fait que le bon from est passé en paramètre
de la fonction mail.

1) est-ce normal ?
2) si oui, comment contourner ça ?


Il y a 2 choses, le champ From (tu peux le vérifier dans le
header de ton mail, en affichant les sources de ton mail à
l'aide de ton lecteur de mail) ET il y a le Return-Path.

Je te donne le lien d'une petite lib...

http://www.progweb.com/modules/cours/consult.php?own=4&numR

Elle te fera gagner du temps (j'espère).

--
Nicklas
ProgWeb - Développer son site Internet
http://www.progweb.com

Avatar
Laurent
In article ,
says...
Il y a 2 choses, le champ From (tu peux le vérifier dans le
header de ton mail, en affichant les sources de ton mail à
l'aide de ton lecteur de mail) ET il y a le Return-Path.
Tu veux dire que c'est le return-path qui est présenté au serveur smtp,

et pas le from ?

Elle te fera gagner du temps (j'espère).
je vais regarder ça de plus près :o)


merci!

Avatar
Thibaut Allender

Tu veux dire que c'est le return-path qui est présenté au serveur smtp,
et pas le from ?


oui, mais le probleme est ailleurs.

voir php.ini :

[mail function]
; For Win32 only.
SMTP = localhost

; For Win32 only.
sendmail_from =

deja tu peux le changer la
ensuite, pour avoir un "From" valide, il faut utiliser le header "From:
" et non "from: " comme tu l'indiques dans ton premier post

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org

Avatar
Laurent
Dans l'article <c50g3u$l62$,
disait...
; For Win32 only.
sendmail_from =
deja tu peux le changer la
vu que je voudrais que le from varie en fonction du visiteur... ça ne

servira pas à grand chose :)

ensuite, pour avoir un "From" valide, il faut utiliser le header "From:
" et non "from: " comme tu l'indiques dans ton premier post
oups, c'est en recopiant que j'ai changé la casse... dans le script,

c'est ok :

$headers= "From: $fromrn";
.../...
$res = mail($sendto, $subject, $body, $headers);

mais c'est toujours qui est présenté au smtp.

J'explique quand même à quoi à ça servirait : le message en question
arrive sur une boite qui permet une inscription et qui répond
automatiquement à l'adresse indiqué dans le From saisi. Si je n'ai pas
de réponse en retour, je ne m'occupe pas du mail reçu via mon
formulaire.
Or là, la réponse automatique ne peut pas se faire, vu l'adresse passée.

Qu'en est-il du return-path ? faut-il que je le positione aussi ? est-ce
que la fonction mail l'accepte ?

merci...
Laurent.

Avatar
Thibaut Allender

vu que je voudrais que le from varie en fonction du visiteur... ça ne
servira pas à grand chose :)


je te l'accorde ;)

$res = mail($sendto, $subject, $body, $headers);

mais c'est toujours qui est présenté au smtp.


tu peux ajouter un 5e parametre pour modifier le return-path, cf la doc :
http://be.php.net/manual/fr/function.mail.php

" Avec le cinquième paramètre, vous pouvez ajouter d'autres paramètres
de ligne de commande qui seront utilisés par le programme d'envoi de
courrier. Dans l'exemple ci-dessous, l'en-tête Return-Path est
correctement paramétré. Normalement, sendmail ajoute automatiquement
l'en-tête X-Authentication-Warning (paramètre -f), car l'utilisateur
"serveur web" n'est probablement pas un de ses utilisateurs de confiance
("trusted users"). Pour supprimer cette alerte, ajoutez l'utilisateur du
serveur web dans la configuration de sendmail."

reste a voir si ca fonctionne sous windows... c'est pas du tout sur, vu
que ca ne fait qu'ajouter un parametre a la commande
sendmail qui est balancee lors de l'envoi du mail

Qu'en est-il du return-path ? faut-il que je le positione aussi ? est-ce
que la fonction mail l'accepte ?


voir ci-dessus, mais ca ne semble pas gagné sous windows :/

--
thibaut allender | freelance | web|system developer|designer
+32 496 26 75 76 | http://capsule.org

Avatar
Guillaume Brocker
Laurent wrote:
Voilà, j'utilise un script php sur mon serveur web perso (apache/w32),
couplé avec mon serveur smtp perso, permettant aux gens qui passent de
m'envoyer un mail (le to: est donc en dur, c'est le from: qui est saisi
dans le formulaire).

Seulement, systematiquement, le from transmis au serveur smtp est
, malgré le fait que le bon from est passé en paramètre
de la fonction mail.

1) est-ce normal ?


Sous windows, la fonction _mail_ n'est pas très souple d'utilisation et
ne couvre pas l'ensemble des fonctionnalités de SMTP.

2) si oui, comment contourner ça ?


Je recommande plutôt d'utiliser le module PEAR s'appellant *Mail*. Il
me semble qu'il est installé par défaut dans les dernières version de
PHP. Il m'a permis d'émettre des mails à partir d'un server apache
tournant sur une machine Windows 2000.

Voir le lien ci-dessous:
<http://pear.php.net/package/Mail>

--
Guillaume Brocker

Avatar
Nicklas
Le Wed, 07 Apr 2004 08:32:37 +0000, Laurent a écrit :

In article ,
says...
Il y a 2 choses, le champ From (tu peux le vérifier dans le
header de ton mail, en affichant les sources de ton mail à
l'aide de ton lecteur de mail) ET il y a le Return-Path.
Tu veux dire que c'est le return-path qui est présenté au serveur smtp,

et pas le from ?

Elle te fera gagner du temps (j'espère).
je vais regarder ça de plus près :o)



Le Return-Path est le "vrai" "From".
Je m'explique, c'est ce dont le serveur prend en compte.
Le "From", c'est juste ce que le visiteur voit en recevant
le mail dans son logiciel de messagerie.

Lorsqu'un mail n'arrive pas à destination (le champ To est
erroné ou le mail indiqué n'existe pas), le mail sera renvoyé
à l'adresse indiquée par le Return-Path.

Normalement, il est indispensable de préciser sa valeur.
Il a souvent une valeur par défaut.

--
Nicklas
ProgWeb - Développer son site Internet
http://www.progweb.com


Avatar
Laurent
In article ,
says...
Seulement, systematiquement, le from transmis au serveur smtp est
, malgré le fait que le bon from est passé en paramètre
de la fonction mail.
Pour info:

Quelque soit le librairie utilisé, c'est sytématiquement
qui était transmis en "MAIL FROM:" au serveur smtp.
J'ai donc utilisé une fonction socket_mail, trouvé sur je ne sais plus
quel site, et qui attaque directement mon serveur smtp en passant les
bon paramètres.
Du coup, ça marche très bien.

Merci à tous pour vos réponses !
:o)
Laurent.