首页  编辑  

POP3邮件乱码

Tags: /超级猛料/Network.网络通讯/电子邮件/   Date Created:

]、。·ˉˇ¨〃々—~‖…’”〕〉》」』〗】∶!"'),.:;?]` 将memo1的IME(input method editor)改为imechinese模式,再试试.

我听说这是因为SMTP在传输中,不会对邮件的中文编码自动解码,需要自己手动解码,

如果上面还不能解决的话,还有一种方法,就是先将收到的编码以二进制形式写入文件,再以ascii码的形式将其读出,就可以解决了

procedure Tfrm_Get_Mail.NMPOP31Connect(Sender: TObject);

var

 S: String;

 M: Integer;

begin

 frm_Get_Mail.Caption:='已经连接到 '+ADOQuery1['Mail_UserName']+' 在 '+ADOQuery1['Mail_POP3_Host']+'上';

 if NMPOP31.MailCount > 0 then

 begin

   Label1.Caption:='有 '+IntToStr(NMPOP31.MailCount)+' 封信在你的信箱里。';

   if InputQuery('输入一个编号', '接收哪条? (1-'+IntToStr(NMPOP31.MailCount)+')', S) then

   begin

     M := StrToIntDef(S, -1);

     If (M < 0) or (M > NMPOP31.MailCount) then

       ShowMessage('无效的编号')

     else

       ProgressBar1.Max:=100;

       ProgressBar1.Min:=0;

         NMPOP31.GetMailMessage(M);

   end;

   end

 else

   Label1.Caption:='没有邮件.';

end;

procedure Tfrm_Get_Mail.NMPOP31DecodeStart(var FileName: String);

var

 S: String;

begin

 S := FileName;

 if InputQuery('保存附件', '文件名?', S) then

   FileName := S;

end;

procedure Tfrm_Get_Mail.NMPOP31RetrieveEnd(Sender: TObject);

begin

Memo1.Text := NMPOP31.MailMessage.Body.Text;

 Memo1.lines.add( NMPOP31.MailMessage.Subject);

 Memo1.Lines.Add(NMPOP31.MailMessage.From);

 Label1.Caption:='接收完毕';

end;