procedure TfrmPop3.BitRetrieveClick(Sender: TObject);
begin
screen.cursor:=crhourglass;
if sakpop1.Connected then
sakpop1.quit;
listbox1.Clear;
listbox2.clear;
memo1.Clear;
memo2.clear;
sakpop1.Host := edit1.text;
sakpop1.UserId := edit5.text;
sakpop1.UserPasswd := edit7.text;
sakpop1.Port := edit2.text;
StatusBar1.SimpleText := '请等待与邮局的连接...';
sakpop1.Connect;
if SakPOP1.POPError then
begin
MessageDlg( '连接失败。可能是邮局没有启动或者邮局没有响应。',
mtError, [mbOk], 0);
screen.cursor:=crdefault;
exit;
end;
if not SakPOP1.login then
begin
MessageDlg('用户名或密码错误!', mtError, [mbOk], 0);
screen.cursor:=crdefault;
exit;
end;
SakPOP1.Init;
ButCancel.Visible := true;
ProgressBar1.Visible := true;
sakPOP1.retrieveAllMessages( SakMsgList1);
ButCancel.Visible := false;
ProgressBar1.Visible := false;
if SakMsgList1.count > 0 then
begin
emailyaz;
// 该过程读取邮件的数量、简要信息和附件的文件名
end;
StatusBar1.SimpleText := '收到了 '+ intToStr( SakMsgList1.count) + ' 封信件。';
screen.cursor:=crdefault;
end;
////--------- 以上就是连接到pop3服务器读取邮件信息。
procedure TfrmPop3.emailyaz;
var
i: Integer;
str: String;
msg: TSakMsg;
begin
listbox1.items.clear;
StatusBar1.SimpleText := '正在接收新邮件...';
for i := 0 to sakmsglist1.Count - 1do
begin
msg := SakMsgList1.items;
str:=msg.From + ' ' + msg.Subject;
listbox1.items.add(str);
end;
StatusBar1.SimpleText := '';
end;
////---------
procedure TfrmPop3.BitDeleteClick(Sender: TObject);
begin
if Messagedlg('真的要删除当前选中的邮件吗?',
mtconfirmation,[mbok,mbcancel],0)=mrok then
begin
sakpop1.DeleteMessage(listbox1.itemindex+1);
// listbox1 存当前收到的邮件名称 + 发件人等信息。
end;
end;
不好意思。请各位给看看。 谢谢了。