Aller au contenu

mail();


Nils

Sujets conseillés

Bonjour,

J'essaye d'utiliser la fonction mail(), mais elle ne fonctionne pas avec tous les serveurs d'email que j'ai essayés, j'obtiens bien mes messages avec hotmail, mais pas avec gmail ou free.

voici mes deux fonctions :

The original message was received at 04/04/2005 03:47:33
from nilsinspiron ([127.0.0.1])
The following addresses had delivery problems:
=================================
nilsbay_AT_free.fr
Transcript of session follows:
=================================
Error: 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
This is a copy of the message, including all the headers:
=================================
Date: Mon, 04 Apr 2005 15:47:33 +0100
Subject: Votre réservation auprès de France Limousine Service
To: nilsbay_AT_free.fr
From: nils.bay_AT_gmail.com
Bonjour,
Votre réservation faite dans l'espace de réservation en ligne de France Limousine service à bien été prise en compte
     Ceci est un e-mail envoyé automatiquement, il n'est pas possible d'y répondre.[/code]

Par ailleurs, dans la log de postcast (mon serveur d'email) j'ai l'information suivante :

[code]PostCast Server 2.6.0
SMTP log started at 4/4/2005 03:47:42

Thread 2: 03:47:43  [<-->] : Connecting to mx.free.fr
Thread 2: 03:47:43  [<-->] : Connected.
Thread 2: 03:47:44  [--->] : 220 mrelay4-2.free.fr ESMTP
Thread 2: 03:47:44  [<---] : HELO nilsinspiron
Thread 2: 03:47:44  [--->] : 250 mrelay4-2.free.fr
Thread 2: 03:47:44  [<---] : RSET
Thread 2: 03:47:44  [--->] : 250 flushed
Thread 2: 03:47:44  [<---] : MAIL FROM:<nils.bay_AT_gmail.com>
Thread 2: 03:47:44  [--->] : 250 ok
Thread 2: 03:47:44  [<---] : RCPT TO:<nilsbay_AT_free.fr>
Thread 2: 03:47:44  [--->] : 250 ok
Thread 2: 03:47:44  [<---] : DATA
Thread 2: 03:47:44  [--->] : 354 go ahead
Thread 2: 03:47:44  [<---] : .
Thread 2: 03:47:44  [--->] : 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:44  [<---] : QUIT
Thread 2: 03:47:44  [<-->] : Disconnected.
Thread 2: 03:47:44  [<-->] : Error: 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:44  [<-->] : Connecting to mrelay1-2.free.fr
Thread 2: 03:47:44  [<-->] : Connected.
Thread 2: 03:47:45  [--->] : 220 mrelay1-2.free.fr ESMTP
Thread 2: 03:47:45  [<---] : HELO nilsinspiron
Thread 1: 03:47:47  [<-->] : Error: Unable to resolve host name free.fr;
Thread 2: 03:47:47  [--->] : 250 mrelay1-2.free.fr
Thread 2: 03:47:47  [<---] : RSET
Thread 2: 03:47:47  [--->] : 250 flushed
Thread 2: 03:47:47  [<---] : MAIL FROM:<nils.bay_AT_gmail.com>
Thread 2: 03:47:47  [--->] : 250 ok
Thread 2: 03:47:47  [<---] : RCPT TO:<nilsbay_AT_free.fr>
Thread 2: 03:47:47  [--->] : 250 ok
Thread 2: 03:47:47  [<---] : DATA
Thread 2: 03:47:47  [--->] : 354 go ahead
Thread 2: 03:47:47  [<---] : .
Thread 2: 03:47:47  [--->] : 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:47  [<---] : QUIT
Thread 2: 03:47:47  [<-->] : Disconnected.
Thread 2: 03:47:47  [<-->] : Error: 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:47  [<-->] : Connecting to mrelay2-1.free.fr
Thread 2: 03:47:48  [<-->] : Connected.
Thread 2: 03:47:48  [--->] : 220 mrelay2-1.free.fr ESMTP
Thread 2: 03:47:48  [<---] : HELO nilsinspiron
Thread 2: 03:47:48  [--->] : 250 mrelay2-1.free.fr
Thread 2: 03:47:48  [<---] : RSET
Thread 2: 03:47:48  [--->] : 250 flushed
Thread 2: 03:47:48  [<---] : MAIL FROM:<nils.bay_AT_gmail.com>
Thread 2: 03:47:48  [--->] : 250 ok
Thread 2: 03:47:48  [<---] : RCPT TO:<nilsbay_AT_free.fr>
Thread 2: 03:47:48  [--->] : 250 ok
Thread 2: 03:47:48  [<---] : DATA
Thread 2: 03:47:48  [--->] : 354 go ahead
Thread 2: 03:47:48  [<---] : .
Thread 2: 03:47:48  [--->] : 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:48  [<---] : QUIT
Thread 2: 03:47:48  [<-->] : Disconnected.
Thread 2: 03:47:48  [<-->] : Error: 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:48  [<-->] : Connecting to mrelay2-2.free.fr
Thread 2: 03:47:49  [<-->] : Connected.
Thread 2: 03:47:49  [--->] : 220 mrelay2-2.free.fr ESMTP
Thread 2: 03:47:49  [<---] : HELO nilsinspiron
Thread 2: 03:47:49  [--->] : 250 mrelay2-2.free.fr
Thread 2: 03:47:49  [<---] : RSET
Thread 2: 03:47:49  [--->] : 250 flushed
Thread 2: 03:47:49  [<---] : MAIL FROM:<nils.bay_AT_gmail.com>
Thread 2: 03:47:49  [--->] : 250 ok
Thread 2: 03:47:49  [<---] : RCPT TO:<nilsbay_AT_free.fr>
Thread 2: 03:47:49  [--->] : 250 ok
Thread 2: 03:47:49  [<---] : DATA
Thread 2: 03:47:49  [--->] : 354 go ahead
Thread 2: 03:47:49  [<---] : .
Thread 2: 03:47:49  [--->] : 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:49  [<---] : QUIT
Thread 2: 03:47:49  [<-->] : Disconnected.
Thread 2: 03:47:49  [<-->] : Error: 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:50  [<-->] : Connecting to mx1-1.free.fr
Thread 2: 03:47:50  [<-->] : Connected.
Thread 2: 03:47:50  [--->] : 220 mx1-1.free.fr ESMTP
Thread 2: 03:47:50  [<---] : HELO nilsinspiron
Thread 2: 03:47:50  [--->] : 250 mx1-1.free.fr
Thread 2: 03:47:50  [<---] : RSET
Thread 2: 03:47:50  [--->] : 250 flushed
Thread 2: 03:47:50  [<---] : MAIL FROM:<nils.bay_AT_gmail.com>
Thread 2: 03:47:50  [--->] : 250 ok
Thread 2: 03:47:50  [<---] : RCPT TO:<nilsbay_AT_free.fr>
Thread 2: 03:47:50  [--->] : 250 ok
Thread 2: 03:47:50  [<---] : DATA
Thread 2: 03:47:50  [--->] : 354 go ahead
Thread 2: 03:47:50  [<---] : .
Thread 2: 03:47:50  [--->] : 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].
Thread 2: 03:47:50  [<---] : QUIT
Thread 2: 03:47:50  [<-->] : Disconnected.
Thread 2: 03:47:50  [<-->] : Error: 451 See [url="http://pobox.com/~djb/docs/smtplf.html"]http://pobox.com/~djb/docs/smtplf.html[/url].

Total Messages: 2
Sent: 0
Bad: 2
Left: 0
Time: 8 s
Msg/h: 900

SMTP log closed at 4/4/2005 03:47:50

Je suis derrière une connexion Wanadoo, et j'ai bien les DNS Wanadoo positionnés sur ma machine (vérifiés chez eux), je suis aussi derrière un routeur (port 53 (DNS) ouvert).

Je n'arrive pas à interpréter la log de postcast, quelqu'un sait-il ?

Je ne comprends pas pourquoi ça marche avec hotmail et pas avec les autres.

Quelque chose me dit que je ne dois pas fournir assez d'information avec ma fonction mail(), notament au niveau des headers, que je ne sais pas manipuler.

Il semblerait que hotmail soit plus permissif que les 2 autres.

Quelqu'un a-t'il une idée à ce sujet ?

Merci de votre aide.

(désolé pour la longueur du post, mais je ne savais pas quoi enlever)

Nils.

Lien vers le commentaire
Partager sur d’autres sites

Bon ben :blink:

Méa culpa (one again !)

Alors pour info, si ça peut servir à un prochain ...

L'erreur 451, signifie qu'il y a une erreur dans le message, et pas pendant le traitement.

Les \n n'ont pas lieu d'être, ça passe à la ligne sans \n.

Ensuite, je séparais mes $destinataires admin par un ; alors qu'il fallait une ,

Maintenant quelqu'un sait à quoi sert les \n ?, je les avais pourtant trouvé dans une syntaxe sur php.net, mais manifestement, ils ne servent pas à passer à la ligne !

Nils. :whistling:

Lien vers le commentaire
Partager sur d’autres sites

Merci ZeDevil,

Je ré essaye, sans les autres erreurs, ça devrait passer.

(Pour le <br/> mon message n'est pas en html)

merci.

Lien vers le commentaire
Partager sur d’autres sites

Merci !

il y a bien qq chose comme ça, mais je ne trouve pas la syntaxe juste, mes derniers essais ne fonctionnent pas :

mail($dest,"sujet","blabla '\n' blabla");

mail($dest,"sujet","blabla "\n" blabla");

sais-tu comment je dois positionner les " et les ' pour que ce soit bien internprété ?

est-ce que cela marcherait mieux : mail($dest,"sujet","blabla"."\n"."blabla"); ?

Merci.

Lien vers le commentaire
Partager sur d’autres sites

Oui, je pense bien que le "blabla"."\n"."blabla" ne doit pas etre inclu dans l'envoye du mail sous cette forme, mais plutot:

$message

Avec lequel tu fais reference avant, et ou là tu peux mettre tes sauts de ligne

Lien vers le commentaire
Partager sur d’autres sites

alors on ne peut pas mettre un texte en dur avec des sauts de lignes dans mail() ?

On doit passer par une variable pour avoir la gestion de saut de ligne ?

(mon texte n'est pas variant)

merci.

Lien vers le commentaire
Partager sur d’autres sites

Bah ecoute, je n'ai jamais fait comme tu le dis. Mais non, ca ne me parait pas possible. Scriptement parlant....

Meme si ton texte ne bouge jamais, il faut faire des variables, du genre:

$message =  "coucou c'est moi\n";
$message .=  "ca va ?";

Modifié par ZeDevil
Lien vers le commentaire
Partager sur d’autres sites

ok, je comprends ce que tu as mis, mais je ne comprends pas bien pourquoi on ne peut pas mettre la même chose en dur dans la fonction.

En tout cas, merci beaucoup pour ton aide.

Nils.

Lien vers le commentaire
Partager sur d’autres sites

Bonjour,

je ne comprends pas trop le problème. Normalement, ceci doit fonctionner :

mail($to,$suject,"coucou\nceci est une seconde ligne\n et ceci la 3e");

Pour info, tu as un certain nombre de caractères spéciaux :

\n
nouvelle ligne (hex 0A)
\r
retour chariot (hex 0D)
\t
tabulation (hex 09)

utiles pour "agrémenter" ton code source de plus de clareté :D (et pour diverses autres raisons..)

Lien vers le commentaire
Partager sur d’autres sites

Hello Nico !!!!!!

Et bien, content d'avoir de tes nouvelles, et une ligne de code de plus comme confirmation, mais voilà, à peu de choses près, c'est ce que j'avais mis dans mon code, et le \n dans le texte me génère une erreur dans le to !

je vois vraiment pas d'où ça peut venir, et ce qui est drôle, c'est que les retours chariots entrés dans le script sont pris en comptes !

voici ce que j'avais mis :

mail("$destinataires",
    "Nouvelle réservation FLS !",
    "Bonjour,

    ".$_SESSION['email'].", vient de créer une nouvelle réservation dans l'espace de réservation de France Limousine Service.");

remplaces les retours chariots après le bonjour par des \n, et ça marche pas, enfin, chez moi !!! ;)

Lien vers le commentaire
Partager sur d’autres sites

Hello Nico,

Je ne comprends pas bien ta question, je bosse là avec un serveur smtp (postcast) sur mon pc perso.

Par contre, hier soir, ça marchait, et aujourd'hui, ça ne marche plus !!!, enfin, ça marche avec gmail, mais pas avec free !!!, crois-tu que j'aurais oublié des headers ou qq chose comme ça ?, je ne sais pas du tout dans quelle direction chercher.

Merci, Nico.

Lien vers le commentaire
Partager sur d’autres sites

Bon, j'y perds mon latin, enfin mon PHP, ça s'est remis à marcher !!!

Ce que j'ai fais : j'ai créé un mail(avec le strict minimum); , avant mon mail(normal); , j'ai l'impression que la première instruction mail(); à réouvert les tuyaux, ou qq chose comme ça, maintenant, j'ai enlevé le mail(minimal), et ça continue de marcher.

Tu t'y connais en header pour la fonction mail() ?, je sais pas pourquoi, mais le problème je le sens par là, style, les accents qui passent pas ou autre ..., d'ailleurs mes \n ne passent toujours pas !, à moins que ce soit dans php.ini que j'ai raté une option ?

Aurais-tu des pistes, je suis quasi sûr que d'ici une 10aines d'heures ça remarchera plus !!!

à+, Nils.

Lien vers le commentaire
Partager sur d’autres sites

Par rapport aux headers, justement, ils sont délimités par des \n. Donc une erreur à ce niveau peut les "décaler". Seulement, si tu fais l'erreur dans le body, il ne devrait pas y avoir de problèmes. Il doit pouvoir faire la différence entre le body et les headers.

Lien vers le commentaire
Partager sur d’autres sites

Hello,

Et bien, en fait de \n, je n'en ai plus, parce que ça marche jamais avec, mais j'ai lu sur php.net qu'on pouvait préciser des headers, mais je n'ai pas bien compris leur rôle.

En tout cas, le reste de la journée, ça a bien marché. Et puis, j'ai eu aussi des pb avec free aujourd'hui, je me demande si tout ça n'est pas lié, parce qu'avec gmail, ça n'a jamais dysfonctionné. Tu connais une page qui explique à quoi servent les headers ?, pas trop la syntaxe, mais plutôt leur rôle.

En tout cas, merci Nico !!! Bye, see you soon ...

Lien vers le commentaire
Partager sur d’autres sites

Jettes un oeil à un mail que tu as recu sur outlook ou autre. Essaies de voir les entetes du mail. Tu verras quelques renseignements qui sont assez importants, tels que l'expéditeur, la date d'envoi, les destinataires, la forme du mail (txt, html..) l'identifiant (par exemple Message-ID: <20050405231106.5764.qmail_AT_ns2313.ovh.net> ) etc..

Ca, ce sont les headers, qu'il est possible de modifier. Les headers d'un mail sont comme les headers d'une page. Ils sont envoyés en début de mail, et sont interprétés par le mailer du destinataire, pour décrire le mail qui va suivre.

Lien vers le commentaire
Partager sur d’autres sites

Re bonjour,

et bien je reviens à mes problèmes d'email.

Voici ce que j'exécute, avec gmail, les 2 emails arrivent, avec free, celui qui a un \n, n'arrive pas.

$email = $row_qui_reserve -> email;

mail("$email",
    "sans n  Votre réservation est maintenant planifiée.",
    "Bonjour, sans n");

mail("$email",
    "avec n  Votre réservation est maintenant planifiée.",
    "Bonjour, \n jourbon");

Je ne vois pas ce que je rate avec les \n, mais sûrement qq chose !!! ???

Merci à tous.

Nils.

Lien vers le commentaire
Partager sur d’autres sites

LA SOLTUTION !

à ce problème,

j'ai fini par trouver qq chose qui marche,

il ne faut pas qu'un \n mais un \r\n, il faut le retour chariot + plus aller à la ligne.

Voilà, ça marche maintenant.

à+.

n.

Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...