IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

UTF-8(mail) incompréhensible


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut UTF-8(mail) incompréhensible
    Bonjour à tous!

    j'espère trouver mon salut ici, car j'en ai ras le bol^^

    Voilà, j'utilise un script tout fait, codé par des anglais! dans se script il y a +- 40 mails envoyer selon des circonstances, cependant j'ai des soucis de codage...

    J'ai en majorité résolu des problèmes cependant certain mail me font hiech!

    Alors un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    <?php
    ## Email File -> retrieve username
    ## called only from the retrieve_password.php page
    $headers .= 'Content-type: text/plain; charset=utf-8' ."\n";
     
    if ( !defined('INCLUDED') ) { die("Access Denied"); }
    $row_details = $db->get_sql_row("SELECT u.username, u.email FROM " . DB_PREFIX . "users u WHERE u.email='" . $mail_input_id . "'");
     
    $send = true; // always sent;
     
     
    ## text message - editable
    $text_message = 'Cher(e) inscrit(e),
    
    Votre pseudo sur le site de  %1$s est: %2$s
    
    Cordialement,
    L\'equipe %1$s ';
     
    ## html message - editable
    $html_message = 'Cher(e) %1$s, <br>
    <br>
    Votre pseudo sur le site de %1$s est: <b>%2$s</b> <br>
    <br>
    Cordialement, <br>
    L\'equipe %1$s ';
     
     
    $text_message = sprintf($text_message, $setts['sitename'], $row_details['username']);
    $html_message = sprintf($html_message, $setts['sitename'], $row_details['username']);  
    $html_message = utf8_decode($html_message);
    send_mail($row_details['email'], $setts['sitename'] . ' - Récupération Pseudo', $text_message, 
    	$setts['admin_email'], $html_message, null, $send);
    ?>
    Encodé en ANSI et il fonctionne super bien!

    mais Celui ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    <?php
    ## File Version -> v6.06
    ## Email File -> notify seller that a bidder has retracted his bids on an auction
    ## called only from the item->retract_bid() function!
    $headers  = 'MIME-Version: 1.0' . "\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
    $headers .= 'Reply-to: Seomeone <adresse@example.com>' . "\n" ;
    $headers .= 'Return-path: Seomeone <adresse@example.com>' . "\n" ;
    $headers .= 'From: Seomeone <adresse@example.com>' . "\r\n";
     
    if ( !defined('INCLUDED') ) { die("Access Denied"); }
     
    $bid_details = $this->get_sql_row("SELECT a.auction_id, a.name, u.name AS user_name, u.email FROM " . DB_PREFIX . "auctions a 
    	LEFT JOIN " . DB_PREFIX . "users u ON u.user_id=a.owner_id WHERE 
    	a.auction_id='" . $auction_id . "'");
     
    $send = true;
     
    ## text message - editable
    $text_message = 'Cher %1$s,
    
    Un utilisateur a retiré toutes ses offres sur une de vos enchères, %2$s.
    
    Pour afficher la page des détails de la vente aux enchères, s\'il vous plaît cliquer sur le lien ci-dessous:
    
    %3$s
    
    Pour afficher la page Historique des enchères, s\'il vous plaît cliquer sur le lien ci-dessous:
    
    %4$s
    
    Cordialement,
    L\'équipe %5$s ';
     
    ## html message - editable
    $html_message = 'cher %1$s, <br>
    <br>
    Un utilisateur a retiré toutes ses offres sur une de vos enchères, %2$s. <br>
    <br>
    [ <a href="%3$s">Cliquez ici</a> ] Pour afficher la page des détails de la vente aux enchères. <br>
    [ <a href="%4$s">Cliquez ici</a> ] Pour afficher la page Historique des enchères <br>
    <br>
    Cordialement, <br>
    L\'équipe %5$s';
     
     
    $auction_link = process_link('auction_details', array('auction_id' => $bid_details['auction_id']));
    $bids_link = process_link('bid_history', array('auction_id' => $bid_details['auction_id']));
     
    $text_message = sprintf($text_message, $bid_details['user_name'], $bid_details['name'], $auction_link, $bids_link, $this->setts['sitename']);
    $html_message = sprintf($html_message, $bid_details['user_name'], $bid_details['name'], $auction_link, $bids_link, $this->setts['sitename']);
    $html_message = utf8_decode($html_message);
     
     
    send_mail($bid_details['email'], 'Auction ID: ' . $bid_details['auction_id'] . ' - Rétractation d\'enchère', $text_message,
    	$this->setts['admin_email'], $html_message, null, $send);
     
    ?>
    Encodé en ANSI aussi me prend la tête :
    Les accents sont remplacé par des "?"
    cher testé,

    Un utilisateur a retir? toutes ses offres sur une de vos ench?res, sdfsdfsd.

    [ Cliquez ici ] Pour afficher la page des d?tails de la vente aux ench?res.
    [ Cliquez ici ] Pour afficher la page Historique des ench?res

    Cordialement,
    L'?quipe Asia-Market
    si je retire le décode tout est bon sauf le cher testé
    cher testé,

    Un utilisateur a retiré toutes ses offres sur une de vos enchères, sdfsdfsd.

    [ Cliquez ici ] Pour afficher la page des détails de la vente aux enchères.
    [ Cliquez ici ] Pour afficher la page Historique des enchères

    Cordialement,
    L'équipe Asia-Market
    Alors si vous avez une idée je suis vraiment preneur car la ça fait 5 jours que je m'arrache les cheveux, et sur les autres forums que j'ai essayer on me répond même pas

  2. #2
    Membre Expert
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Par défaut
    Je suppose que ta base de données n'est pas en utf8, est ce que ceci résout ton problème?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $text_message = sprintf($text_message, utf8_encode($setts['sitename']), utf8_encode($row_details['username']));
    $html_message = sprintf($html_message,utf8_encode( $setts['sitename'] ), utf8_encode($row_details['username']));

  3. #3
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut
    Bonjour, Un grand merci pour votre réponse!!!!

    Alors lorsque je copie colle votre code l'email ne s'affiche plus, je n'ai que le logo.

    ma base :






    A la base elle était en latin j'ai changer pour de l'utf-8 cependant certaine sont encore en latin mais pas la base User

    EDIT

    Voilà, ca fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    <?php
    ## File Version -> v6.06
    ## Email File -> notify seller that a bidder has retracted his bids on an auction
    ## called only from the item->retract_bid() function!
    $headers  = 'MIME-Version: 1.0' . "\n";
    $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\n";
    $headers .= 'Reply-to: Seomeone <adresse@example.com>' . "\n" ;
    $headers .= 'Return-path: Seomeone <adresse@example.com>' . "\n" ;
    $headers .= 'From: Seomeone <adresse@example.com>' . "\r\n";
    
    if ( !defined('INCLUDED') ) { die("Access Denied"); }
    
    $bid_details = $this->get_sql_row("SELECT a.auction_id, a.name, u.name AS user_name, u.email FROM " . DB_PREFIX . "auctions a 
    	LEFT JOIN " . DB_PREFIX . "users u ON u.user_id=a.owner_id WHERE 
    	a.auction_id='" . $auction_id . "'");
    
    $send = true;
    
    ## text message - editable
    $text_message = 'Cher %1$s,
    
    Un utilisateur a retiré toutes ses offres sur une de vos enchères, %2$s.
    
    Pour afficher la page des détails de la vente aux enchères, s\'il vous plaît cliquer sur le lien ci-dessous:
    
    %3$s
    
    Pour afficher la page Historique des enchères, s\'il vous plaît cliquer sur le lien ci-dessous:
    
    %4$s
    
    Cordialement,
    L\'équipe %5$s ';
    
    ## html message - editable
    $html_message = 'cher %1$s, <br>
    <br>
    Un utilisateur a retiré toutes ses offres sur une de vos enchères, %2$s. <br>
    <br>
    [ <a href="%3$s">Cliquez ici</a> ] Pour afficher la page des détails de la vente aux enchères. <br>
    [ <a href="%4$s">Cliquez ici</a> ] Pour afficher la page Historique des enchères <br>
    <br>
    Cordialement, <br>
    L\'équipe %5$s';
    
    
    $auction_link = process_link('auction_details', array('auction_id' => $bid_details['auction_id']));
    $bids_link = process_link('bid_history', array('auction_id' => $bid_details['auction_id']));
    
    $text_message = sprintf($text_message, $bid_details['user_name'], $bid_details['name'], $auction_link, $bids_link, $this->setts['sitename']);
    $html_message = sprintf($html_message, utf8_decode($bid_details['user_name']), $bid_details['name'], $auction_link, $bids_link, $this->setts['sitename']);
    
    
    ##$html_message = utf8_decode($html_message);
    
    
    send_mail($bid_details['email'], 'Auction ID: ' . $bid_details['auction_id'] . ' - Rétractation d\'enchère', $text_message,
    	$this->setts['admin_email'], $html_message, null, $send);
    
    ?>
    Et alors une autre question :

    Comment puis-je faire pour testé tous les emails? car chaque mail se déclenche selon une actions d'écrite comme celui-ci ci dessus quand une personne rétracte.

    Une solution pour envoyer tous les emails sur l'adresse en même temps pour corrigés les bug?

  4. #4
    Membre averti
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Avril 2013
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chargé d'affaire
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2013
    Messages : 23
    Par défaut
    Edit :

    Pour les mails tout est en ordre! Merci de l'aide! =)

Discussions similaires

  1. Echec incompréhensible de la fonction mail
    Par laurentSc dans le forum Langage
    Réponses: 2
    Dernier message: 07/03/2010, 10h45
  2. [mail] Encodage UTF-8 avec mail()
    Par anxious dans le forum Langage
    Réponses: 9
    Dernier message: 02/12/2009, 22h56
  3. Souci de mail incompréhensible
    Par SirDarken dans le forum Langage
    Réponses: 14
    Dernier message: 24/11/2008, 10h20
  4. Réponses: 1
    Dernier message: 18/02/2008, 20h10
  5. encodage UTF-8 d'un mail
    Par kodipro dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 31/07/2007, 16h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo