Partage
  • Partager sur Facebook
  • Partager sur Twitter

Souci avec fontion mail()

-> sur variable sujet parsée

Sujet résolu
    23 mars 2019 à 0:57:21

    Bonjour,

    Je rencontre un petit souci avec l'envoi de mes mails quand sous certaines conditions.

    Quand la variable $sujet est définie comme ceci :

    $sujet='c\'est un sacré sujet';

    Le mail est envoyé, mais le problème est le suivant : mon extranet gère trois langues, français, espagnol et anglais et pour envoyer mes mails dans une langue donnée, je dois parser le sujet.

    J'ai des tableaux selon les langues

    Voici :

    <?php
    $array['fr']=array(
        'C_EST_UN_SUJET'=>'C\'est un sujet'
    );
    $array['es']=array(
        'C_EST_UN_SUJET'=>'Es un sujeto'
    );
    $array['en']=array(
        'C_EST_UN_SUJET'=>'This is a subject'
    );
    
    // Et je parse le sujet comme ceci
    $sujet=$array['fr']['C_EST_UN_SUJET'];
    ?>

    Même en ajoutant un addslashes(), idem, le mail ne part pas...

    Du coup c'est embêtant, le sujet du mail dans la bonne langue, c'est plutôt bien et important...

    C'est bizarre, une fois la variable définie, il devrait pas y avoir de problème non ? Ou si ?


    [EDIT]

    J'ai trouvé une solution "non propre" qui me fait avancer sur le problème :

    <?php
    if($langue_voulue==='fr') {
    $subject= 'C\'est en français';
    }
    if($langue_voulue==='es') {
    $subject= 'En espagnol';
    }
    if($langue_voulue==='en') {
    $subject= 'En anglais';
    }

    Du coup, ça marche quand c'est en espagnol et en anglais, mais pas en français.

    Je pensais que ça pouvait être l'apostrophe mais même pas car quand je remplace l'apostrophe par un espace ça n'envoie pas...

    Le ç cédille ? Je le remplace par un c tout court, et ça marche...

    Un problème d'encodage ?

    {Edit 2]

    Du coup, après plusieurs tests... finalement, c'est ni accents, ni ç çédilles ni autres caractères particuliers non testés sûrement... bien embêtant tout ça.

    Personne n'a eu ce problème auparavant ?

    -
    Edité par djkori 23 mars 2019 à 1:43:03

    • Partager sur Facebook
    • Partager sur Twitter
      23 mars 2019 à 12:51:46

      Salut

      Tu utilise comment la fonction mail() ? 

      Utilise tu une librairie ? https://github.com/PHPMailer/PHPMailer

      • Partager sur Facebook
      • Partager sur Twitter
        23 mars 2019 à 14:42:13

        Bonjour, j'utilise simplement la fonction mail() de php, sans autre librairie.

        donc comme ceci :

        mail($to, $sujet, $message, $header);

        [EDIT]

        Du coup, on m'a soufflé la solution dans un autre forum, je le laisse ici au cas où ça pourrait servir à quelqu'un.

        Il faut encoder le titre comme ceci :

        <?php
        $subject = 'Titre à problèmes'
        $subject = '=?UTF-8?B?'.base64_encode($subject).'?=';
        ?>

        Et le mail s'envoie, avec accents, tirets, etc, etc :)

        -
        Edité par djkori 23 mars 2019 à 14:54:41

        • Partager sur Facebook
        • Partager sur Twitter

        Souci avec fontion mail()

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown