我用Demo收取电子邮件都收不到,发送的Demo也发不出去
解决方案 »
- 求一个识别验证码的程序(顶者有分)
- 急,急,急,调用vc的dll问题
- 为什么同样的com+event object在windows 2003 server能调用,在xp上不能调用?
- 关于treeview 的问题
- 如何写进程啊
- mediaPlay的全屏播放
- --【¤ Delphi 技术提升、能力升华 讨论大会 ¤】-- 请各位高手指点迷津
- Delphi其实挺稳定的.......
- 如何判断表中已有记录与将要插入记录是否相同啊,不能用遍历查询一次啊?
- 在stringGrid中的某一cell里面放置了TComboBox后,鼠标点击时TComboBox的下拉列表无法显示,请帮助?
- 如何控制strtofloat所得浮点数小数点后的位数?
- SQL SERVER 数据库的刷新问题
Try
if not IDSMTP1.Connected then
IDSMTP1.Connect;
if IDSMTP1.Connected then
begin
with IdMsgSend do
begin
Body.Assign(Content.Lines);
From.Name := StrSenderName;
From.Address := StrSender;
Recipients.Add;
Recipients[0].Address := QRecName;
Recipients.Add;
Recipients[0].Address := JRecName;
Recipients.Add;
Recipients[0].Address := QRecName;
Recipients.Add;
Recipients[1].Address := JRecName;
Subject := Title.Text;
ReplyTo.EMailAddresses := strsender;
end;
IDSMTP1.Send(IDMsgSend);
Except
if IDSMTp1.Connected then
IDSMTP1.Disconnect;
ShowMessage('发送邮件出错!');
end;
if IDPOP31.Connected then
begin
IDPOP31.Disconnect;
end;
IDPOP31.Connect;
FMsgCount := IDPOP31.CheckMessages;
if FMsgCount > 0 then
RetrievePOPHeaders(FMsgCount);
IDPOP31.Disconnect ;
except
showmessage('接收邮件失败!')
end;procedure RetrievePOPHeaders(intMsgCount : integer);
Var intIndex1: integer;
intIndex2: integer;
itm: TListItem;
StrSender ,StrName,StrSubject,StrContent : string;
bl_AttachFile :boolean;
ESize : integer;
begin
for intIndex1 := 1 to intMsgCount do
begin
ShowFileStatus('正在接收第'+intToStr(intIndex1)+'封邮件...');
Msg.Clear;
IDPOP31.Retrieve(intIndex1, Msg);
StrSender := Msg.From.Address;
StrName := Msg.From.Name;
StrSubject := Msg.Subject;
LstAttachFile.Items.Clear;
ESize := IDPOP31.RetrieveMailBoxSize ;
for intIndex2 := 0 to Pred(Msg.MessageParts.Count) do
begin
if Msg.MessageParts.Items[intIndex2] is TIdAttachment then
begin
LstAttachFile.Items.Add( TIdAttachment(Msg.MessageParts.Items[intIndex2]).Filename);
TIdAttachment(Msg.MessageParts.Items[intIndex2]).SaveToFile(Frm_Main.s_AttachFilePath+TIdAttachment(Msg.MessageParts.Items[intIndex2]).Filename);
bl_AttachFile := true;
end
else
begin //body text
if Msg.MessageParts.Items[intIndex2] is TIdText then
begin
Memo1.Clear;
Memo1.Lines.AddStrings(TIdText(Msg.MessageParts.Items[intIndex2]).Body);
end
end;
end;
With AdoQryTemp do
begin
Close;
Sql.CLear;
Sql.Add('insert into EMailTbl(ESender,ESenderName,ESubject,EContent,EAttachFile,EState,EGetTime,ESize)');
Sql.Add('Values('''+strSender +''','''+StrName +''','''+StrSubject+''','''+Memo1.Text +''','''+lstAttachFile.Items.Text+''',0,'''+DateToStr(Msg.Date)+''','+intToStr(ESize)+')');
ExecSql;
Close;
end;
IDPOP31.Delete(intIndex1);
end;
end;