Probleme MIME mail php en AS2

cs_memess Messages postés 13 Date d'inscription mercredi 3 septembre 2003 Statut Membre Dernière intervention 13 novembre 2008 - 11 nov. 2008 à 03:13
clemcom Messages postés 12 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 26 janvier 2009 - 26 déc. 2008 à 12:42
Bonjour,

Je souhaite envoyer un mail avec la fonction mail("$to", "$sujet","$mail","From: $adremail"); de php.
Pour ça j'envoie à partir de flash toutes mes variables avec un loadVarNums()
Le souci est quand j'ai de la ponctuation dans ma variable mail, j'ai un souci le mail ne s'envoie pas.

Apparemment il faut que mes variables soient au format x-www-form-urlencoded existe-t-il un moyen de convertir le corps de mon mail ?

Comment faire pour que as2 et php veuillent bien s'entendre ?

Merci d'avance.

Franck

4 réponses

cs_tom Messages postés 1511 Date d'inscription samedi 8 décembre 2001 Statut Modérateur Dernière intervention 11 juin 2009
13 nov. 2008 à 11:04
Salut,

Flash renvoie des données encodées en utf8.
Donc coté php, il suffit de faire du utf8_decode($mavariable) pour resoudre ton soucis.
0
cs_memess Messages postés 13 Date d'inscription mercredi 3 septembre 2003 Statut Membre Dernière intervention 13 novembre 2008
13 nov. 2008 à 12:42
Bonjour,

Merci beaucoup,
En effet ça fonctionne il me reste plus qu'un petit souci avec le ' (l'apostrophe) de "c'est"
une suggestion ?

Franck
0
cs_tom Messages postés 1511 Date d'inscription samedi 8 décembre 2001 Statut Modérateur Dernière intervention 11 juin 2009
14 nov. 2008 à 17:13
Il me semble de tete que c'est \\' ou \' qu'il faut faire passer

Il existe des fonctions toutes faites pour remplacer à la volée ce genre de caractere.
0
clemcom Messages postés 12 Date d'inscription samedi 25 janvier 2003 Statut Membre Dernière intervention 26 janvier 2009
26 déc. 2008 à 12:42
Ola Tom
tu vas pouvoir peut etre m'indiquer ou mettre ce utf8_decode sur mon fichier php en effet j'ai des ???? à l pace de toute la ponctuation...si tu as 30 sc pour mmater code? merci d'avance
Cordialement
Clem

<?php
function decoder($texte){
        $texte = utf8_decode($texte); // converti en iso-8859-1
        $texte = stripslashes($texte); // élimine les anti-slashs d'échappement
        $texte = nl2br($texte); // converti les retours  en

        $texte = trim($texte); // élimine les '\n', '\r', '\t' etc
        return $texte;
}
 
$erreurPHP="";

/* Paragraphe à decommenter pour tester le script php seul, sans le fla
$_POST['sujet'] = 'formulaire Test';
$_POST['messageHtml'] = '<html>Salut
mon cher

Bye</html>';
$_POST['messageText'] = "Salut  mon cher  Bye";
$_POST['expediteur'] = "expediteur@fai.fr";
$_POST['mailReponse'] = "expediteur@fai.fr";
*/

if(isset($_POST['sujet']))$sujet = $_POST['sujet'];
else $erreurPHP .= "Variable 'sujet' non transmise\n";
 
if(isset($_POST['messageHtml']))$messageHtml = $_POST['messageHtml'];
else $erreurPHP .= "Variable 'message' non transmise\n";

if(isset($_POST['messageText']))$messageTexte = $_POST['messageText'];
else $erreurPHP .= "Variable 'message' non transmise\n";
 
if(isset($_POST['expediteur']))$expediteur = $_POST['expediteur'];
else $erreurPHP .= "Variable 'expediteur' non transmise\n";
 
if(isset($_POST['mailReponse']))$mailReponse = $_POST['mailReponse'];
else $erreurPHP .= "Variable 'mailReponse' non transmise\n";
 

 
if($erreurPHP != "") echo utf8_encode("erreurPHP=".$erreurPHP);
else
{
    $to = "monmail@monfournisseur.com";
    $sujet = decoder($sujet);
    $expediteur = decoder($expediteur);
    $messagehtml = decoder($messageHtml);
    $messageTexte = utf8_decode($messageTexte);
   
     //-----------------------------------------------
     //GENERE LA FRONTIERE DU MAIL ENTRE TEXTE ET HTML
     //-----------------------------------------------

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

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

     $headers = 'From: '.$expediteur.' <'.$mailReponse.'>'."\n";
     $headers .= 'Return-Path: <'.$mailReponse.'>'."\n";
     $headers .= 'MIME-Version: 1.0'."\n";
     $headers .= 'Content-Type: multipart/alternative; boundary="'.$frontiere.'"'."\n";
     $headers .= 'Content-Transfer-Encoding: 8bit';

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

     $message = "--$frontiere\n";
     $message .= "Content-Type: text/plain; charset=UTF-8\n";
     $message .= "Content-Transfer-Encoding: 8bit\n\n";
     $message .= $messageTexte."\n\n";

    
     //-----------------------------------------------
     //MESSAGE HTML
     //-----------------------------------------------
     $message .= "--$frontiere\n";
     $message .= "Content-Type: text/html; charset=UTF-8\n";
     $message .= "Content-Transfer-Encoding: 8bit\n\n";
     $message .= $messageHtml."\n\n";

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

    $mail_OK = mail($to, $sujet, $message, $headers) ;
   
 
    if (!$mail_OK)
    {
        $erreurPHP .= "Problème lors de l'envoi du mail";
       
    }
    echo utf8_encode("erreurPHP=".$erreurPHP);
}
?>
0
Rejoignez-nous