POP和SMTP的使用(100分)

  • 主题发起人 主题发起人 lxlongcn
  • 开始时间 开始时间
L

lxlongcn

Unregistered / Unconfirmed
GUEST, unregistred user!
请专家指点
1,在DELPHI中如何存盘邮件;
2,在DELPHI中如何用POP或SMTP打开一封已从邮件服务器接收的邮件并得到它的祥细信息,
如发件者,标题等.
3,在DELPHI中如何捕捉到在应用程式失去焦点条码机所发来的信息.
谢谢!
LXLONGCN
2001/1/15
 
对于2:nmpop控件本身提供邮件的相关属性,查一下帮助就可以了
 
>>1,2
delphi下有smtp和pop3的例子, 看一看, /demos/fastnet
可以把信件的内容显示到控件中(例如: memo), 再加一个savefiledialog不就行了?
>>3,在DELPHI中如何捕捉到在应用程式失去焦点条码机所发来的信息.
不解
 
fastnet的控件有问题,建议用sakemail,有例子,使用很简单
程序失去焦点时会触发OnDeactive事件,可以用TApplicationEvents来捕捉
 
感觉用sakemail好一点
我就是用NM系列,后来转到sakemail的
唐晓锋的Coolmail也可以考虑,不过我没用过
 
关于3,我不知道;
1,2,有我以前的一段程序,比较乱,仅供参考:
procedure TFMmail.ToolButton1Click(Sender: TObject);
var
i:integer;
begin
if NMPOP31.Connected then
begin
ToolButton1.Caption:='接收邮件';
NMPOP31.Disconnect;
end
else
begin

NMPOP31.Host :=DBEdit7.Text ;
NMPOP31.UserID := DBEdit9.Text;
NMPOP31.Password := DBEdit10.Text;
NMPOP31.AttachFilePath:= 'D:/mail';
NMPOP31.Connect;
if NMPOP31.Connected then
if NMPOP31.MailCount > 0 then
begin
ToolButton1.Caption:='取消连接';
for i:=1 to NMPOP31.MailCount do
begin
statusbar1.Panels[0].Text:='正在接收第'+inttostr(i)+'封邮件......';
NMPOP31.GetMailMessage(i);
with DataModule1.Table13 do
begin
insert;
fieldbyname('发件人').asstring:=NMPOP31.MailMessage.From;
fieldbyname('主题').asstring:=NMPOP31.MailMessage.Subject;
fieldbyname('内容').asstring:=NMPOP31.MailMessage.Body.Text;
fieldbyname('接收时间').asstring:=formatdatetime('dddddd',now);
post;
end;
end;
end
else
ShowMessage('没有邮件');
end;
statusbar1.Panels[0].Text:='';
i:=0;
with DataModule1.Table13 do
begin
if active=true then
begin
first;
i:=0;
while not EOF do
begin
ListView2.Items.Add;
ListView2.items.Item.Caption:=fieldbyname('Index').asstring;
ListView2.items.Item.SubItems.Add(fieldbyname('发件人').asstring);
ListView2.items.Item.SubItems.Add(fieldbyname('主题').asstring);
ListView2.items.Item.SubItems.Add(fieldbyname('接收时间').asstring);
next;
i:=i+1;
end;
end;
NMPOP31.Disconnect;
ToolButton1.Caption:='接收邮件';
end;
end;
 
多人接受答案了。
 
后退
顶部