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 :

Class SMTPClient avec l'encodage UTF-8 et Mime


Sujet :

Langage PHP

  1. #1
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut Class SMTPClient avec l'encodage UTF-8 et Mime
    J'ai une Class SMTPClient dans lequel je voudrais ajouter l'encodage UTF8 mais je ne sais pas comment le faire avec
    cette class. Quelqu'un pourrait me donner les étapes?

    Quand on rempli le formulaire les accès sont mis avec des caractère spéciaux qui les rends illisibles.

    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
    61
    62
    63
    64
    65
    $SmtpServer="mail.domaine.com";
    $SmtpPort="26";
    $SmtpUser="directeur@domaine.com";
    $SmtpPass="motdepasse";
     
    class SMTPClient
    {
        function SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $subject, $nom, $tel, $body)
        {
            $this->SmtpServer = $SmtpServer;
            $this->SmtpUser = base64_encode ($SmtpUser);
            $this->SmtpPass = base64_encode ($SmtpPass);
            $this->from = $from;
            $this->to = $to;
            $this->subject = $subject;
            $this->nom = $nom;
            $this->tel = $tel;
            $this->body = $body;
                if ($SmtpPort == "")
                {
                $this->PortSMTP = 26;
                    }else{
                $this->PortSMTP = $SmtpPort;
                }
        }
        function SendMail()
        {
            if ($SMTPIN = fsockopen ($this->SmtpServer, $this->PortSMTP))
            {
                        fputs ($SMTPIN, "EHLO ".$_SERVER['HTTP_HOST']."\r\n");
                $talk["hello"] = fgets ( $SMTPIN, 1024 );
                        fputs($SMTPIN, "auth login\r\n");
                $talk["res"]=fgets($SMTPIN,1024);
                        fputs($SMTPIN, $this->SmtpUser."\r\n");
                $talk["user"]=fgets($SMTPIN,1024);
                        fputs($SMTPIN, $this->SmtpPass."\r\n");
                $talk["pass"]=fgets($SMTPIN,256);
                        fputs ($SMTPIN, "MAIL FROM: <".$this->from.">\r\n");
                $talk["From"] = fgets ( $SMTPIN, 1024 );
                        fputs ($SMTPIN, "RCPT TO: <".$this->to.">\r\n");
                $talk["To"] = fgets ($SMTPIN, 1024);
                        fputs($SMTPIN, "DATA\r\n");
                $talk["data"]=fgets( $SMTPIN,1024 );
                        fputs($SMTPIN, "To: <".$this->to.">\r\nFrom: <".$this->from.">\r\nSubject:".$this->subject."\r\n\r\n\r\n".$this->nom."\r\n".$this->tel."\r\n\r\n".$this->body."\r\n.\r\n");
                $talk["send"]=fgets($SMTPIN,256);
                        //CLOSE CONNECTION AND EXIT ...
                        fputs ($SMTPIN, "QUIT\r\n");
                        fclose($SMTPIN);
                 //
            }
        return $talk;
        }
    }
     
    if($_SERVER["REQUEST_METHOD"] == "POST")
    {
      $to = ( isset($_POST['to']) && strtolower($_POST['to'])==="webmestre" ) ? "directeur@domaine.com" : "webmestre@domaine.com";
        $nom = isset($_POST['nom']) ? preg_replace( "/[^\s\.\-a-zA-Z]/", "", ucwords(strtolower($_POST['nom']))) : "";
        $tel = isset($_POST['tel']) ? preg_replace( "/[^\:\s\-0-9a-zA-Z]/", "", $_POST['tel'] ) : "";
        $from = isset($_POST['from']) ? preg_replace( "/[^\.\-\_\@a-zA-Z0-9]/", "", $_POST['from']) : "";
        $subject = "Vous avez un message visiteur";
        $body = isset( $_POST['message'] ) ? preg_replace( "/(From:|To:|BCC:|CC:|Subject:|Content-Type:)/", "", ucfirst($_POST['message'])) : "";
        $SMTPMail = new SMTPClient ($SmtpServer, $SmtpPort, $SmtpUser, $SmtpPass, $from, $to, $subject, $nom, $tel, $body);
        $SMTPChat = $SMTPMail->SendMail();
    }
    Je souhaite vraiment de l'aide et j'en ai besoins.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-ce que ton fichier php est bien encodé en UTF8 ?
    Quel résultat obtiens-tu ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Oui, c'est en utf8

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  4. #4
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Si je mets utf-8, dans mon logiciel client, j'ai des caractères pas lisible mais dans le webmail, c'est ok.
    Si je mets iso-8859-1, c'est l'inverse qui se produit, le logiciel client c'est lisible mais pas dans le webmail.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <form method="post" action="" id="form" accept-charset="UTF-8">


    J'ai besoin d'aide. Je sais qu'on peut ajouter le charset dans la class mais je ne sais pas comment.

    J'ai pensé faire un truc à caccept-charset selon le destinataire. Puisque, l'un utilise le logiciel client et l'autre le webmail.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Je parlais de l'encodage interne du fichier, celui qui est defini dans le logiciel ou tu saisis le code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par sabotage Voir le message
    Je parlais de l'encodage interne du fichier, celui qui est defini dans le logiciel ou tu saisis le code.
    Si je comprends bien, c'est le fichier d'où est situé le code à l'entête.
    c'est UTF-8

    Même chose dans l'index principal.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  7. #7
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Non, je t'ai dis dans le logiciel dans lequel tu tapes le code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  8. #8
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Ok.. oui je comprends là, c'est Notepad2 défini par défaut à "utf-8".
    On oublie souvent la simplicité ou la base dans la vie: Maslow

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Par défaut, d'accord mais ton fichier il a quel encodage ?
    Si notepad2 ne te l'indique pas, regarde avec notepad++.

    De plus, tu n'as pas répondu concernant le type de caractères que tu avais quand l'encodage n'était pas bon.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Membre actif Avatar de dancom5
    Homme Profil pro
    Inscrit en
    Janvier 2010
    Messages
    808
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55

    Informations forums :
    Inscription : Janvier 2010
    Messages : 808
    Points : 241
    Points
    241
    Par défaut
    Bien UTF-8, tous mes documents sont sauvegarder avec utf-8.
    On oublie souvent la simplicité ou la base dans la vie: Maslow

Discussions similaires

  1. [MySQL] Problème de base avec l'encodage UTF-8
    Par TedLun dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 22/10/2014, 13h56
  2. [tXSLT] XML+XSL=>XML mais avec un encodage UTF-8 différent de ce lui d'origine
    Par mathieu_r dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 13/01/2010, 15h12
  3. Flux RSS avec PHP : encodage UTF-8 vers ISO-8559-1
    Par eric437 dans le forum Langage
    Réponses: 1
    Dernier message: 03/08/2008, 20h56
  4. Utiliser la fonction fwrite avec un encodage UTF-8
    Par Mo_Poly dans le forum Langage
    Réponses: 4
    Dernier message: 30/01/2008, 22h19
  5. Problème d'affichage avec encodage utf-8
    Par t-die dans le forum Zend
    Réponses: 3
    Dernier message: 04/12/2006, 14h55

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