OVH Cloud OVH Cloud

php_mail

7 réponses
Avatar
news.free
Bonjour,

je travaille sur un site et avec une fonction php dés l'inscription celle ci
envoie un mais ce que je comprend pas c'est que le mail n'est pas envoyer
parr l'adresse mail que je désire mais par www-data.

mon serveur tourne sous debian woody

7 réponses

Avatar
Olivier Miakinen

je travaille sur un site et avec une fonction php dés l'inscription celle ci
envoie un [mail] mais ce que je comprend pas c'est que le mail n'est pas envoyer
parr l'adresse mail que je désire mais par www-data.


Tu la positionnes comment, l'adresse que tu désires ? Dans php.ini ou
par ini_set() ? <http://fr.php.net/manual/fr/ref.mail.php>

mon serveur tourne sous debian woody


Ah, donc les options de php.ini sont inopérantes puisqu'elles ne
fonctionnent que sous Windows <idem>. Il suffit peut-être alors de
renseigner le champ From: et/ou le champ Return-Path: ?

Désolé, je ne peux guère aider davantage. Ah si, peut-être comme cela :
<http://www.google.fr/search?q=www-data+%22php+mail%22>.

Avatar
BLob
parr l'adresse mail que je désire mais par www-data.


Voir du côté des header et en particulier de "From:
"

Avatar
news.free
"BLob" a écrit dans le message de news:
42788683$0$3550$
parr l'adresse mail que je désire mais par www-data.


Voir du côté des header et en particulier de "From:
"


en faite mon script mail de compose ainsi

$email="$mail";
$sujet="Votre Inscription ";
$message= "bonjour $nom $prenom,";

$message.="messaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaageeeeeeeeeeeeee";
$headers="From:";
$headers="Bcc:";
mail($mail,$sujet,$message,$headers );


Avatar
Eric Demeester
dans (in) fr.comp.lang.php, Olivier Miakinen <om+
ecrivait (wrote) :

Bonjour,

je travaille sur un site et avec une fonction php dés l'inscription celle ci
envoie un [mail] mais ce que je comprend pas c'est que le mail n'est pas envoyer
parr l'adresse mail que je désire mais par www-data.
[...]


Ah, donc les options de php.ini sont inopérantes puisqu'elles ne
fonctionnent que sous Windows <idem>. Il suffit peut-être alors de
renseigner le champ From: et/ou le champ Return-Path: ?


Je pensais effectivement qu'on pouvait résoudre la chose en renseignant
ces champs d'en-tête via la variable optionnelle headers de mail(), mais
ça ne suffit pas.

Le problème est que la fonction mail() ne génère pas l'enveloppe du
mail, et que par défaut le From: et le Return-Path: d'enveloppe sont
ceux liés au serveur, à savoir www.trucbidule ou www-data selon les cas.

En d'autres termes, on peut forcer le From: , le Return-Path: ou le
Sender: en les renseignant dans la variable headers, mais si le message
bounce, le bounce sera renvoyé à l'adresse www.trucbidule.

La solution qu'on m'a conseillé est d'utiliser plutôt sendmail s'il est
présent sur le serveur.

Ca donne quelque chose comme ça, à adapter en fonction du serveur
utilisé et des besoins :

// adresse du destinataire
$email = ""jojo" ";
// Sujet
$subject = "Mon beau mail";
// Message
$message = "Hello World !";

// headers
$entete = "Sender: rn";
$entete .= "From: "toto" ";
$entete .= "MIME-Version: 1.0rn";
$entete .= "Content-type: text/plain; charset=ISO-8859-15rn";
$entete .= "Content-transfer-encoding: 8BITrn";
// Adresse de destination
$entete .= "To: " . $email . "rn";
// sujet
$entete .= "Subject: " . $subject . "rn";
// Fin d'en-tête
$entete .= "rn";

// Envoi du mail
$sendmail = "/usr/sbin/sendmail -t -f ";
$fd = popen($sendmail, "w");
fputs($fd, $entete . $message);
pclose($fd);

J'ai testé, ça marche bien. J'ai encore un peu de mal à formater
correctement le message saisi dans le champ textarea d'un formulaire,
mais c'est une autre histoire...

--
Eric


Avatar
Olivier Miakinen
À BLob qui lui conseillait de remplir le champ From: news.free
a répondu :

[...] mon script mail [s]e compose ainsi

$headers="From:";
$headers="Bcc:";


Jeu : il y a une erreur sur l'une de ces deux lignes. Sauras-tu trouver
laquelle ?

Avatar
FightClub!

je travaille sur un site et avec une fonction php dés l'inscription celle ci
envoie un [mail] mais ce que je comprend pas c'est que le mail n'est pas envoyer
parr l'adresse mail que je désire mais par www-data.



Tu la positionnes comment, l'adresse que tu désires ? Dans php.ini ou
par ini_set() ? <http://fr.php.net/manual/fr/ref.mail.php>

mon serveur tourne sous debian woody



Ah, donc les options de php.ini sont inopérantes puisqu'elles ne
fonctionnent que sous Windows <idem>. Il suffit peut-être alors de
renseigner le champ From: et/ou le champ Return-Path: ?


En mettant ceci dans la config apache (soit dans le virtualhost soit
même dans un simple fichier .htaccess) :

php_admin_value sendmail_path '/path/to/sendmail -t -i -f expe -r expe'

expe étant l'adresse de l'expéditeur

NB: les options -i et -r sont peut-être spécifiques au serveur email
utilisé (postfix dans mon cas)


--

http://SurveilleTonSite.sd2i.org
Alerte gratuite par mail en cas de problème sur votre site.


Avatar
Jedi121
$headers="From:";
$headers="Bcc:";


Jeu : il y a une erreur sur l'une de ces deux lignes. Sauras-tu trouver
laquelle ?


Je l'aide : concaténation != redéfinition