请教高手:关于使用Indy控件编写邮件收发程序中出现的问题 (100分)

  • 主题发起人 主题发起人 citybug_ch
  • 开始时间 开始时间
C

citybug_ch

Unregistered / Unconfirmed
GUEST, unregistred user!
请问高手:
1。为什么我从服务器收到的邮件的发送者只要是汉字的就是乱码,Subject也是有这个问题
有的汉字可以显示,有的就不行。如何解决?
主要的问题是:?=gb2312这样的字符
2。如何在一个窗口显示以后,再自动运行程序。就好象FOXMAIL中收邮件的那样做法,先是
弹出一个窗口,然后开始检查邮箱,接着下载邮件。
3。如何在弹出一个模式窗口后,再弹出一个模式窗口?比如:FOXMAIL中收邮件时,先弹出
一个收邮件的窗口,如果需要输入密码,再弹出一个窗口。
请各位高手帮我解决,谢拉!
 
难道就没有人知道吗?能帮我解决其中的一个问题也可以啊,拜托各位了,给点建议
 
将窗体的formstyle设置成formOnTop然后弹初就可以了啊,
 
这是我写的一段代码,从没出现过乱码问题
procedure TForm1.ToolButton2Click(Sender: TObject);//收邮件
var
i:integer;
strmail:string;
begin
with nmpop31 do
begin
host:=edithost.Text;
port:=strtoint(edit2.text);
userid:=edituser.text;
password:=editpsw.text;
attachfilepath:='c:/';
deleteonread:=false;
reportlevel:=Status_Basic;
timeout:=20000;
connect;
if connected then
begin
if mailcount>0 then
begin
lstmail.Items.Clear;
for i:=1 to mailcount do
begin
strmail:='';
getsummary(i);
strmail:=summary.MessageId+' from : '+
summary.From +' : '+
summary.Subject+'.size: '+
inttostr(summary.Bytes);
lstmail.Items.add(strmail);
getmail(1);
statusbar1.SimpleText:='#of E-mail: '+inttostr(mailcount);
end;
end
end else
statusbar1.SimpleText:='Status : connection failed!';
end;
end;

procedure getmail(i:integer);
begin
with form1 do
begin
nmpop31.GetMailMessage(i);
txtfrom.Text:=nmpop31.MailMessage.From;
txtmessageid.Text:=nmpop31.MailMessage.MessageId;
txtsubject.Text:=nmpop31.MailMessage.Subject;
if nmpop31.MailMessage.Attachments.Text<>'' then
begin
lstattach.Items.Assign(nmpop31.MailMessage.Attachments);
end else
begin
lstattach.Visible:=false;
end;
txtheader.Lines.Assign(nmpop31.mailmessage.head);
txtbody.lines.Assign(nmpop31.mailmessage.body);
lblno.Caption:=inttostr(i);
end;
end;

第二个问题可以用多线程来解决
 
IN your project new "threadunit" and write your code .in thread open the new window
 
delpi6的demo 好象没这个问题
 
编码的问题怎么解决呢?请高手给我支持!
 
不同的邮件服务器就会存在乱码问题。比如263的信箱。
 
to:exceed
如何使用 base?我试过base64,但是没有解决。您最好给我一个例子。谢谢
 
多人接受答案了。
 
后退
顶部