pb avec fonction mail

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : pb avec fonction mail

Re: pb avec fonction mail

par Truc » 04 sept. 2009, 15:36

H
A aucun moment le signe ' n'est untilise... Seul les guillemets classiques interviennent.
Peut-être aurez-vous une explication.
Explications par ICI (partie "Guillemets et apostrophes")

Re: pb avec fonction mail

par zeus » 04 sept. 2009, 15:21

Modération :
Afin d'améliorer la lisibilité de ton message,
pense à utiliser les balises [code] ou [php] (selon le langage utilisé).

Elles sont disponibles au-dessus de la zone de saisie de ton message
lorsque tu postes un nouveau message.

Des indications sont disponibles sur la manière de mettre en forme vos messages dans la FAQ

Re: pb avec fonction mail

par medianeweb » 04 sept. 2009, 15:14

Hello les gars
Bon, j'ai trouvé un autre code qui fonctionne.
En fait, sensiblement le même, à ceci près que les \n était entre " et non pas entre '

A aucun moment le signe ' n'est untilise... Seul les guillemets classiques interviennent.

Peut-être aurez-vous une explication.

En tout cas merci de votre aide, je crois que sans vous, j'aurais abandonné depuis longtemps :wink:

A bientôt pour de nouvelles aventures !
  // on génère une chaîne de caractères aléatoire qui sera utilisée comme frontière
  $boundary = "-----=" . md5( uniqid ( rand() ) );

  $headers  = "From: \"Moi\"<$email_expediteur>\n";
  // on indique qu'on a affaire à un email au format html et texte et
  // on spécifie la frontière (boundary) qui servira à séparer les deux parties
  // ainsi que la version mime
  $headers .= "MIME-Version: 1.0\n";
  $headers .= "Content-Type: multipart/alternative; boundary=\"$boundary\"";

  $message_txt  = "message format texte 1450".'\n\n';
  $message_txt .= "Comment ca marche ?\n";
 

  $message_html  = "<html><body><b>message format html</b>";
  $message_html .= "Ca va ?<br>";
  $message_html .= "<font color=\"red\">Comment ca marche</font><br><br>";
  

  $message  = "This is a multi-part message in MIME format.\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: text/plain; charset=\"iso-8859-1\"\n";
  $message .= "Content-Transfer-Encoding: quoted-printable\n\n";
  $message .= $message_txt;
  $message .= "\n\n";
  $message .= "--" . $boundary . "\n";
  $message .= "Content-Type: text/html; charset=\"iso-8859-1\"\n";
  $message .= "Content-Transfer-Encoding: quoted-printable\n\n";
  $message .= $message_html;
  $message .= "\n\n";
  $message .= "--" . $boundary . "--\n";

  mail($destinataire, $sujet, $message, $headers);
?>

Re: pb avec fonction mail

par medianeweb » 04 sept. 2009, 13:08

Hello FuZZyLine
T'inquiète pas. No problem ! J'étais un peu désespéré hier parce que je suis assez laborieux en programmation, et du coup ce qui devrait prendre 15 minutes me prend souvent 1 heure et là ça fait 15 jours que je cherche à améliorer certaines fonctionnalités de mon site et je dois avouer que, à cette dernière étape de la programmation, j'ai hâte de voir la ligne d'arrivée !
Mais bon... je resterai tenace...
L'url donnée te permet de faire tout ce que tu souhaites faire
C'est bien ça qui me rassure.

Je vais y aller par étape et voir ce qui se passe...

Je te tiens au courant

a +

Re: pb avec fonction mail

par FuZZyLine » 04 sept. 2009, 09:01

Salut,
J'ai pris 2 minutes pour tenter...
Exactement le même résultat #-o
Je peux vous envoyer le code, mais en fait, ça changerait rien, j'ai fait un "copier collé" du code que vous m'avez envoyé...
En fait j'ai envie de dire que ce code ne fonctionne pas avec tous les serveurs de messagerie...
ce qui ne m'arrange pas mes affaires !
L'url donnée te permet de faire tout ce que tu souhaites faire (en tout cas dans ton premier message).
Ce peut que "2" minutes n'ont pas été suffisantes. 'fin... pour moi c'était pas le cas.
Autrement, si tu ne fais que du copié/colller sans apréhender le mécanisme, je ne peux t'aider plus.
Regarde bien, lis, apréhende le sujet. Assimiler le sujet passe souvent par des essais foireux...
(je sais de quoi je parle).

Ceci dit, sans offense, c'est ma façon de voir. Je pourrais encore (tenter) de t'aider mais sur un
problème précis, une demande explicite. La, ca devient trop large. A ta question primaire, je pense avoir
répondu... Même si d'autres zones d'ombres apparaissent.

Quelque points à prendre en considération: (simple rappel)

Ne pas confondre \n et \r\n
S'assurer que les doubles "\n" sont bien présents et que ceux-ci sont bien placés.
S'arrurer d'un code de caractère convenable (7bts vs 8Bits, etc...)

Essaie l'envoie de ton mail avec juste, dans la partie body-html un espace et c'est tout,
c'est peut-être juste ton message qu'il n'aime pas.

Voila, désolé ne pas en dire plus mais c'est tout ce que je peux à l'heure présente.

@+ bon code ;)

EDIT: J'ai peut-être été un peu sec lol désolé. Petite info en sus. Tu as la lib phpmailer qui existe et
facilite grandement la vie: http://phpmailer.worxware.com/ au cas ou, on sait jamais ;)

Re: pb avec fonction mail

par Dr@ke » 03 sept. 2009, 23:19

J'en sais rien, personnellement je n'ai jamais testé: multipart/alternative; boundary et encore moins le script de l'adresse donné... Et je n'ai pas le temps de tester pour le moment.
Fuzzy semblait dire que cela fonctionnait, il va surement te répondre...
Sinon te reste la solution que j'évoquais dans mon premier Post.

Re: pb avec fonction mail

par medianeweb » 03 sept. 2009, 21:17

J'ai pris 2 minutes pour tenter...
Exactement le même résultat #-o
Je peux vous envoyer le code, mais en fait, ça changerait rien, j'ai fait un "copier collé" du code que vous m'avez envoyé...
En fait j'ai envie de dire que ce code ne fonctionne pas avec tous les serveurs de messagerie...
ce qui ne m'arrange pas mes affaires !

Re: pb avec fonction mail

par medianeweb » 03 sept. 2009, 20:56

Bon... ok... je vais tenter ça !
Je pourrai pas avant demain alors je vous tiens au courant !

Re: pb avec fonction mail

par Dr@ke » 03 sept. 2009, 20:16

L'exemple sur l'adresse que Fuzzy t'a donné:
<?php
     //-----------------------------------------------
     //DECLARE LES VARIABLES
     //-----------------------------------------------

     $destinataire='[email protected]';
     $email_expediteur='[email protected]';
     $email_reply='[email protected]';

     $message_texte='Bonjour,'."\n\n".'Voici un message au format texte'; 
     $message_html='<html>
     <head>
     <title>Titre</title>
     </head>
     <body>Test de message</body>
     </html>';

     //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------

     $frontiere = '-----=' . md5(uniqid(mt_rand()));

     //-----------------------------------------------
     //HEADERS DU MAIL
     //-----------------------------------------------

     $headers = 'From: "Nom" <'.$email_expediteur.'>'."\n";
     $headers .= 'Return-Path: <'.$email_reply.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"';

     //-----------------------------------------------
     //MESSAGE TEXTE
     //-----------------------------------------------
     $message = 'This is a multi-part message in MIME format.'."\n\n";

     $message .= '--'.$frontiere.'--'."\n";
     $message .= 'Content-Type: text/plain; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_texte."\n\n";

     //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= '--'.$frontiere.'--'."\n";
     $message .= 'Content-Type: text/html; charset="iso-8859-1"'."\n";
     $message .= 'Content-Transfer-Encoding: 8bit'."\n\n";
     $message .= $message_html."\n\n";

     $message .= '--'.$frontiere.'--'."\n";

     if(mail($destinataire,$sujet,$message,$headers))
     {
          echo 'Le mail a été envoyé';
     }
     else
     {
          echo 'Le mail n\'a pu être envoyé';
     }
?> 
Dedans les variables expéditeur et destinataire:
     $destinataire='[email protected]';
     $email_expediteur='[email protected]';
     $email_reply='[email protected]';
Dedans aussi, les variables message html et message texte:
$message_texte='Bonjour,'."\n\n".'Voici un message au format texte';
     $message_html='<html>
     <head>
     <title>Titre</title>
     </head>
     <body>Test de message</body>
     </html>';
Remplace les par les tiennes, test et ensuite adapte avec ton script suivant l'exemple :wink:

Re: pb avec fonction mail

par medianeweb » 03 sept. 2009, 19:57

Hello les gars
bon alors j'ai fait comme il fallait !
Mais :((
ca marche pô !

J'ai ça comme message sur le serveur :
Email Parsing failed. The selected email cannot be parsed since the email is corrupt. Please ask the sender to send the email again using another program or method. MIME message decoding error: incomplete message body part
et sur mon serveur de messagerie :
This is a multi-part message in MIME format.

-------=9af5ec8c49080de78a83ae9d2d103331--
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit



Bonjour
BLABLABLA

CECI EST UN TEST


-------=9af5ec8c49080de78a83ae9d2d103331--
Content-Type: text/html; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit

<html><body><table width='550' border='0' cellspacing='0' cellpadding='5' style='border-color:#CC6600; border-width:1 ;border-style:solid'><tr><td width='100%'><a href='http://www.monsite.com'><IMG SRC='http://www.monsite.com/images.gif'></a> ... ><br><font color='#000000' size='-1' face='verdana'>Bonjour </I><br clear='all'><br clear='all'>BLABLABLA

CECI EST UN TEST

</font></B></tr></td></table></body></html>

-------=9af5ec8c49080de78a83ae9d2d103331--

Voilà voilà...
#-o

Re: pb avec fonction mail

par medianeweb » 03 sept. 2009, 13:12

ok merci les gars !
Je m'y colle cette aprèm :)
Je vous tiens au jus en cas de pb...

Re: pb avec fonction mail

par FuZZyLine » 03 sept. 2009, 12:45

Hello Dr@ke et FuZZyLine !
Merci de ces échanges... :) Non, je n'ai pas utilisé Content-type multipart/arternative;
Est-ce que vous pourriez me donner la syntaxe précise ? (bon sinon, je peux chercher, mais si vous l'avez directement en tête...)
$separator = '-----=' . md5(uniqid(mt_rand())); 
Content-Type: multipart/alternative; boundary = $separator
Je te conseille la lecture de cette page: http://www.vulgarisation-informatique.com/mail.php
j'y ai fais mes classes... (J. de M.) ;)

@+ ;)

Re: pb avec fonction mail

par Dr@ke » 03 sept. 2009, 10:19

Comme disait mon Prof: "Google est ton ami" :wink:
Ensuite Post ton code si problème...

Re: pb avec fonction mail

par medianeweb » 03 sept. 2009, 10:09

Hello Dr@ke et FuZZyLine !
Merci de ces échanges... :) Non, je n'ai pas utilisé Content-type multipart/arternative;
Est-ce que vous pourriez me donner la syntaxe précise ? (bon sinon, je peux chercher, mais si vous l'avez directement en tête...)

Re: pb avec fonction mail

par Dr@ke » 03 sept. 2009, 08:59

As-tu bien indiqué : Content-type multipart/alternative; boundary... ?
Effectivement, c'est déjà mieux de commencer ainsi, cela te permet d'envoyer dans un même mail, deux versions: une version html et une version texte...
Et ensuite éventuellement filtrer les adresses mails, si cela n'affiche pas le résultat voulu sur certaines messageries...