Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre du Club
    Profil pro Didier
    Développeur informatique
    Inscrit en
    janvier 2003
    Messages
    175
    Détails du profil
    Informations personnelles :
    Nom : Didier
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2003
    Messages : 175
    Points : 67
    Points
    67

    Par défaut INDY POP décoder le sujet

    Bonjour, j'ai un soucis avec mon client pop fait en delphi7 avec indy9.

    J'ai un sujet de type :
    =?utf-8?B?U1lOQVBTRSA6IHZvdHJlIHLDqWbDqXJlbmNlbWVudCBzdXIg?= =?utf-8?B?bGEgcGxhdGUtZm9ybWUgZGUgZ2VzdGlvbiBkZXMgYXBwZWxzIGQnb2Zm?= =?utf-8?B?ZXM=?=

    la propriété ContentTransferEncoding vaut base64
    La propriété charset vaut utf-8

    Transformer de l'utf-8 en ansi, ok
    mais pour voir le vrai contenu du message, je seche un peu, je n'arrive pas a transformer ce texte !!!

    Pour infos, mon webmail me donne la valeur "SYNAPSE : votre référencement sur la plate-forme de gestion des appels d'offes".

    Pease help me !!!!!

  2. #2
    Membre du Club
    Profil pro Didier
    Développeur informatique
    Inscrit en
    janvier 2003
    Messages
    175
    Détails du profil
    Informations personnelles :
    Nom : Didier
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2003
    Messages : 175
    Points : 67
    Points
    67

    Par défaut

    J'ai un début de solution, mais je trouve :
    "SYNAPSE : votre référencement sur la plate-forme de gestion des appels d'off"
    j'ai donc des caractères bizarre et il me manque la fin
    la fonction utilisé (trouvé sur le web et non changée :
    Code :
    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
    function DecodeBase64(const CinLine: string): string;
    const
      RESULT_ERROR = -2;
    var
      inLineIndex: Integer;
      c: Char;
      x: SmallInt;
      c4: Word;
      StoredC4: array[0..3] of SmallInt;
      InLineLength: Integer;
    begin
      Result := '';
      inLineIndex := 1;
      c4 := 0;
      InLineLength := Length(CinLine);
     
      while inLineIndex <=InLineLength do
      begin
        while (inLineIndex <=InLineLength) and (c4 < 4) do
        begin
          c := CinLine[inLineIndex];
          case c of
            '+'     : x := 62;
            '/'     : x := 63;
            '0'..'9': x := Ord(c) - (Ord('0')-52);
            '='     : x := -1;
            'A'..'Z': x := Ord(c) - Ord('A');
            'a'..'z': x := Ord(c) - (Ord('a')-26);
          else
            x := RESULT_ERROR;
          end;
          if x <> RESULT_ERROR then
          begin
            StoredC4[c4] := x;
            Inc(c4);
          end;
          Inc(inLineIndex);
        end;
     
        if c4 = 4 then
        begin
          c4 := 0;
          Result := Result + Char((StoredC4[0] shl 2) or (StoredC4[1] shr 4));
          if StoredC4[2] = -1 then Exit;
          Result := Result + Char((StoredC4[1] shl 4) or (StoredC4[2] shr 2));
          if StoredC4[3] = -1 then Exit;
          Result := Result + Char((StoredC4[2] shl 6) or (StoredC4[3]));
        end;
      end;
    end;
    arg, je ne suis plus tres loin, mais je galère car ne comprend pas tout là !

  3. #3
    Expert Confirmé Sénior
    Avatar de Paul TOTH
    Homme Profil pro Paul TOTH
    Freelance
    Inscrit en
    novembre 2002
    Messages
    5 519
    Détails du profil
    Informations personnelles :
    Nom : Homme Paul TOTH
    Âge : 45
    Localisation : Réunion

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : novembre 2002
    Messages : 5 519
    Points : 14 571
    Points
    14 571

    Par défaut

    le décodage se fait comme suis:

    1) répérer "=?...?=", il y en a trois dans ton titre

    2) repérer "a?b?c" dans les "...",
    - a est l'encodage: ici utf-8
    - b est le format: B pour base64 (Q pour QuotedPrintable)
    - c est le texte

    tu dois donc récupérer UTF8Decode(DecodeBase64(c))

    =?utf-8?B?U1lOQVBTRSA6IHZvdHJlIHLDqWbDqXJlbmNlbWVudCBzdXIg?= =?utf-8?B?bGEgcGxhdGUtZm9ybWUgZGUgZ2VzdGlvbiBkZXMgYXBwZWxzIGQnb2Zm?= =?utf-8?B?ZXM=
    ?=
    
    décodage Base 64 :
    
    "SYNAPSE : votre référencement sur" "la plate-forme de gestion des appels d'off""es"
    
    décodage UTF8 :
    
    "SYNAPSE : votre référencement sur" "la plate-forme de gestion des appels d'off""es"
    
    
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Produits : UPnP, RemoteOffice, FlashPascal
    Embarcadero : Ile de la Réunion, Dephi, C++Builder, RADPHP...TVA à 8,5%

  4. #4
    Membre du Club
    Profil pro Didier
    Développeur informatique
    Inscrit en
    janvier 2003
    Messages
    175
    Détails du profil
    Informations personnelles :
    Nom : Didier
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : janvier 2003
    Messages : 175
    Points : 67
    Points
    67

    Par défaut

    C'est super, ca marche tres bien, merci beaucoup :=)

+ Répondre à la discussion
Cette discussion est résolue.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •