2010-08-10 7 views
1

J'essaie d'imprimer un courriel dans un fichier et tout ce que je reçois est ceci. Comment pourrais-je analyser le corps du message en ascii?Encodage du courrier POP3

 
Mime-Version: 1.0 
Content-Type: text/plain; 
    charset="utf-8" 
Content-Transfer-Encoding: base64 
X-Spam-Status: No, hits=0.2 required=5.0 tests=AWL,NO_REAL_NAME autolearn=no 
    version=2.64 
Status: 
DQpNZXNzYWdlIG1lZXRzIEFsZXJ0IGNvbmRpdGlvbg0KMjAxMC0wOC0xMCAxNTozODoxNiBkZXZp 
Y2VfaWQ9RkcxMDBBMzkwNzUwNzAwOCBsb2dfaWQ9MDEwNDAzMjAwNSB0eXBlPWV2ZW50IHN1YnR5 
cGU9YWRtaW4gcHJpPWFsZXJ0IHVzZXI9InJvb3QiIHVpPVNTSCg0MS4yMzcuMTA2LjI1MCkgYWN0 

Répondre

3

Le contenu du message est codé en base64. Si vous décodez, vous obtiendrez le résultat suivant:

message d'alerte répond état 2010-08-10 15:38:16 device_id = FG100A3907507008 log_id = 0104032005 type = événement sous-type = admin pri = utilisateur alert = "root" ui = SSH (41.237.106.250) agissent

Voici un exemple d'un procédé de décodage de base64:

public string DecodeBase64(string str) 
{ 
    byte[] buff = Convert.FromBase64String(str); 
    return System.Text.Encoding.UTF8.GetString(buff); 
} 

Édition: Voici une méthode de décodage du contenu des messages uniquement. Je ne l'ai pas testé, mais je suis sûr que ça va faire l'affaire.

public static string DecodeEmail(string contents) 
{ 
    string[] delimiter = new string[] { "Status:" }; 
    string base64string = contents.Split(delimiter, StringSplitOptions.None)[1]; 
    return DecodeBase64(base64string); 
} 
0

Le message est codé en utilisant Base64. Vous pouvez obtenir un exemple de code pour appeler un décodeur C# Base 64 here.

Le codage de base 64 communément utilisé pour le codage de document MIME par courrier électronique est décrit plus en détail dans RFC 3548

Questions connexes