Probleme fonction mail()

moi
Invité n'ayant pas de compte PHPfrance

25 févr. 2011, 12:42

Bonjour,

j'ai un probleme avec la fonction mail(). Je n'arrive pas a recevoir les mails que j'envoi.
Je travail en local, mon provider est free.
mon code est

Code : Tout sélectionner

$sujet = 'Sujet du mail'; $message = '<html>'; $message = '<head>'; $message = '<title>Message a en html</title>'; $message .= '</head>'; $message .= '<body>'; ../.. tout le message HTML $message .= '</body>'; $message .= '</html> '; $headers = ''; $headers .= 'From: [email protected] \r\n' ; $headers .= 'MIME-Version: 1.0 \r\n'; $headers .= 'Content-type: text/html; charset=utf-8 \r\n'; $headers .= 'to: '.$_POST['email'].' \r\n'; // $headers .= 'return-path: [email protected]'.'\r\n' ; $headers .= 'X-Mailer: PHP/' . phpversion().'\r\n'; // $headers .= 'Reply-To: [email protected]'.'\r\n' ; // $headers .= 'Content-Transfer-Encoding: 8bit \r\n'; // $headers .= '\r\n\r\n.'; $ret=mail($_POST['email'], $sujet, $message, $headers);
le $_POST['email'] est bon, j'ai essayé en "dur", ca ne marche pas mieux. J
'ai esayé de tripatouiller le header dans tous les sens, d'où le commentaires.
j'ai meme modifié les fichiers /etc/php5/apache2/php.ini et /etc/php5/cli/php.ini et mis SMTP = smtp.free.fr
et
sendmail_path = [email protected]
j'ai ajouté

ini_set("SMTP", "smtp.free.fr");
ini_set("sendmail_from ", "[email protected]");
pour en remettre une couche, mais toujours rien dans ma boite a lettre.
Je n'ai pas d'erreur a l'emission, mail() retourne 1. L'emission est vraiment rapide meme instantannée. Evidement, pour les mettre a la poubelle, il ne faut pas longtemps !!!

Je tourne en rond.

Quelqu'un aurait il une piste.

Merci par avance.

Petit nouveau ! | 5 Messages

25 févr. 2011, 12:46

juste pour suivre

ViPHP
ViPHP | 5462 Messages

25 févr. 2011, 12:51

Pour utiliser le smtp de Free il faut être authentifié, mais PHP ne gère pas ca, il faut donc utiliser une lib pour le faire (ex: swiftmailer)

Petit nouveau ! | 5 Messages

25 févr. 2011, 13:07

merci de la reponse

il y a tres longtemps j'avais utilisé un PC sous XP en local aussi et j'arrivais a envoyé avec mail directement sans avoir a charger la lib swiftmailer.

Petit nouveau ! | 5 Messages

25 févr. 2011, 13:15

Je viens de me faire un petit mail en consome vec telnet et j'ai eux message de free en retour:

[quote>
Reporting-MTA: dns; smtp4-g21.free.fr
X-Postfix-Queue-ID: 7C5684C8263
X-Postfix-Sender: rfc822; [email protected]
Arrival-Date: Fri, 25 Feb 2011 12:04:25 +0100 (CET)

Final-Recipient: rfc822; [email protected]
Original-Recipient: rfc822;[email protected]
Action: failed
Status: 5.0.0
Remote-MTA: dns; mx1.free.fr
Diagnostic-Code: smtp; 550 spam detected


[/quote]

Received: from xxx?free.fr (unknown [88.abc.cx.ed]) by
smtp4-g21.free.fr (Postfix) with SMTP id 7C5684C8263 for
<[email protected]>; Fri, 25 Feb 2011 12:04:25 +0100 (CET)
Message-Id: <[email protected]>
Date: Fri, 25 Feb 2011 12:04:25 +0100 (CET)
From: [email protected]
To: undisclosed-recipients:;
Subject: No Subject
Mime-Version: 1.0

message d'essai
deux lignesde
C'est bizarre, apparement, mes mails faits main sont classés comme spams et j'ai un retour, alors qu'avec mail() en php je n'ai aucun retour.
les adresses que je donne a mail() ou a telnet sont toutes bonnes et a moi. je devrais avoir au moins un message de MAILER-DAEMON.

Telnet ne m'a jamais de m'authentifier. je ne fais qu'envoyer.

ViPHP
ViPHP | 5462 Messages

25 févr. 2011, 14:20

visiblement si t'es sur une ligne Free pas besoin d'authentification.
sinon le X-Mailer ca sert a rien, surprime aussi le mail.add_x_header
verifie aussi que ret retourne bien true

Petit nouveau ! | 5 Messages

25 févr. 2011, 16:01

Ca ne change rien.
Je regarde s'il ny a pas une config dans apache. Dans les virtualhost il y a un serveradmin .
Il a probablement qlq part un truc qui dit quel serveur smtp ou pop utiliser.

Petit nouveau ! | 5 Messages

27 févr. 2011, 11:57

A titre indicatif, et si quelqu'un a le meme probleme, ( sous linux).
J'ai regardé dans mes logs /var/log/mail.info ou mail.info1 et j'avais des erreurs.
C'est mon hostname qui etait utilisé et pas celui de free.fr
Donc dans la config de postfix
/etc/postfix/main.cf
myhostname passe de <mon_pc> a free.fr
et ca marche