为什么我用TNMPOP3控件制作的接收EMAIL程序收到的是乱码.(100分)

  • 主题发起人 主题发起人 wz_hzb
  • 开始时间 开始时间
W

wz_hzb

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我用TNMPOP3控件制作的接收EMAIL程序收到有些信内容的是十六制字符,如下:
=C7=F8=BA=C5:=B0=C1=CA=D3=B4=AB=C6=E6(63=C7=F8),英文字符不会.


而有些信的内容是对的.
 
哪个信箱发来的
 
这个是已经编码的内容,需要解码的
给你一个函数吧
function FDecode(Src: String): String;
var
BeginPos,
EndPos : Integer;
begin
BeginPos := Pos('?B?', Src);
if BeginPos > 0 then
begin
EndPos := Pos('?=', Src);
if EndPos = 0 then
EndPos := Length(Src) + 1;
Src := Copy(Src, BeginPos + 3, EndPos - BeginPos - 3);
FBDecoder.Reset;
FBDecoder.CodeString(Src);
Result := FBDecoder.CompletedInput;
BeginPos := Pos(';', Result);
Result := Copy(Result, BeginPos + 1, Length(Result) - BeginPos);
Exit;
end;
BeginPos := Pos('?Q?', Src);
if BeginPos > 0 then
begin
EndPos := Pos('?=', Src);
if EndPos = 0 then
EndPos := Length(Src) + 1;
Src := Copy(Src, BeginPos + 3, EndPos - BeginPos - 3);
FQDecoder.Reset;
FQDecoder.CodeString(Src);
Result := FQDecoder.CompletedInput;
BeginPos := Pos(';', Result);
Result := Copy(Result, BeginPos + 1, Length(Result) - BeginPos);
Exit;
end;
Result := Src;
end;

其中:
FQDecoder : TIdQuotedPrintableDecoder;
FBDecoder : TIdBase64Decoder;
 
接受答案了.
 
后退
顶部