2010-08-10 52 views
1

我想打印一个电子邮件到一个文件,我得到的是这个。我怎样才能将消息正文解析为ascii?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 

回答

3

消息内容是base64编码的。如果你解码它,你会得到以下结果:

消息满足警报条件 2010-08-10十五点38分16秒 DEVICE_ID = FG100A3907507008 LOG_ID = 0104032005类型=事件 亚型=管理员PRI =警报用户= “根” UI = SSH(41.237.106.250)动作

下面有一个base64译码方法的一个例子:

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

编辑:下面是仅解码消息内容的方法。我没有测试过,但很确定它会做的。

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

消息使用Base64进行编码。您可以获取示例代码来调用C#Base 64解码器here

基础64编码通常用于电子邮件MIME文档编码更详细地描述在RFC 3548