Fonction mail php :s - pb avec la fonction mail

j’essaye de faire un petit site sur une distrib ubuntu avec un serveur lamp ( php5 et apache2 )

j’ai utilisé ce script : http://www.salemioche.net/script-php-1.php

mais pour que le mail parte biens une boite a lettre ( orange par exmeple), il faut que mon serveur possé un serveur smtp?
ou je peux specifié un serveur smtp orange ? si oui ou c’est?

Merci

Je crois que tu peux spécifier un serveur smtp dans le php.ini.
Vérifie et dis-nous, ça m’intéresse aussi. Merci :slight_smile:

Edit : par contre il faut que t’aies tous les accès au serveur smtp d’Orange. Je suis pas sûr que tu puisses sans avoir de serveur smtp sur ta machine…

A priori, si tu es chez orange, tu peux utiliser leur smtp. Sinon tu t’en installes un …

je testerai ça, merci de vos reponses, je vous tiens au courant :wink:

j’ai trouvé ça dans le php.ini ( dans /etc/php5/apache2/ )

Je sais pas trop comment le configuré, je suppose que je dois faire la parti for unix only vu que mon serveur est sous linux non?

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

; For Win32 only.
;sendmail_from = me@example.com

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

; 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 =

Pour que le mail soit bien envoyé, il faut que je modifie le php.ini en specifiant le programme pour envoyé le mail ( genre postfix )???

Et dans les fichier de config de postfix, je dois spécifié le smtp orange??

me revoila, alors j’ai installé exim4

Quand je tape : echo "Test" | sendmail mon email@orange.fr

je recois bien un mail sur mon email@orange.fr

L’adresse de l’envoyeur prend l’adresse utilisateur@orange.fr

Le champ A ( destinataire) apparait comme non renseigné ( ce qui est bizarre)

pas d’objet ce qui me parait normal et dans le champ de mail, ce qui est dans le champ echo.

par contre mon formulaire en php pour envoyé un mail ne fonctionne pas,
j’ai pourtant spécifié dans php.ini l’adresse pour envoyé les mails ( /usr/sbin/sendmail) , y a peut etre des options a mettre ?

Les scripts utilisé :
<div align=center>
<form method=POST action=formmail.php >
<input type=hidden name=subject value=formmail>
<table>
<tr><td>Votre Nom:</td>
<td><input type=text name=realname size=30></td></tr>
<tr><td>Votre Email:</td>
<td><input type=text name=email size=30></td></tr>
<tr><td>Sujet:</td>
<td><input type=text name=title size=30></td></tr>
<tr><td colspan=2>Commentaires:<br>
<textarea COLS=50 ROWS=6 name=comments></textarea>
</td></tr>
</table>
<br> <input type=submit value=Envoyer> -
<input type=reset value=Annuler>
</form>
</div>

et la page : formmail.php

<?php
$TO = “l’email qui doit recevoir le mail@orange.fr”;

$h = "From: " . $TO;

$message = "";

while (list($key, $val) = each($HTTP_POST_VARS)) {
$message .= "$key : $val\n";
}

mail($TO, $subject, $message, $h);

Header("Location: http://<URL de la page de remerciement>" );

?>

up

A quoi sert la citation ?

rien dsl

Quelqu’un a une idée? :frowning:

j’ai 2 fichier php.ini et php.ini.ucf-dist

quelqu’un sait a quoi sa correspond ?

Un pour le mode console et un pour Apache.
php.ini.ucf-dist, c’est sûrement un modèle, par contre je ne sais pas d’où il vient.

Dans le même genre, tu as les options recommandées dans un autre fichier php.ini.quelquechose.

donc dans mon cas c’est le serveur dist qui est utlisé ?( vu que j’ai un serveur web apache/ph5 )

Ca fait plaisir d’avoir une reponse :slight_smile: :bounce:

Non c’est toujours php.ini qui est utilisé.
Les autres c’est pour toi, au cas où tu voudrais regarder des options de configurations.

Edit : en fait, quand je dis qu’il y en a deux, c’est parce que par défaut on t’en met un dans un dossier pour les programmes en console si t’as installé php-cli et un pour apache (celui installé avec le module PHP pour Apache).

et quand tu veux spécifié le chemin dans le php.ini pour envoyé les mails.

La commande sendmail est reconnu ou il faut spécifié le chemin exact?

Le chemin exact, c’est à dire /usr/sbin/sendmail par défaut.

Edit : en fait c’est simple, t’as trois directives importantes :
SMTP = localhost
sendmail_from = tonadresse@tondomaine.tld
sendmail_path = /usr/sbin/sendmail

là ou c’est zarb c’est que c’est pas les même paramètre sous win et sous unix, donc il faudrait plutôt commenter les lignes réservées à windows.
;SMTP = localhost
;smtp_port=25
;sendmail_from = tonadresse@tondomaine.tld
voir celle-ci aussi, si le valauer par défaut est OK:
sendmail_path = /usr/sbin/sendmail
ensuite, le paramétrage smtp doit se faire sur le sendmail

Mais si jamais le paramètre smtp et smtp_port est quand-même utilisé sous Linux, alors il faut soit installer un serveur smtp pour tester avec localhost, soit mettre le smtp d’orange:
SMTP = smtp.orange.fr

j’ai installer exim4 pour faire relay smtp

edit: vu que je l’ai installé, je dois mettre local host dans php.ini et smtp orange dans la config du relay smtp? ou le smtp orange directement dans le php.ini

Si tu veux faire relais, il faut mettre localhost, sinon php va squizzer ton server local et tu ne verras plus passer les mails.