我用Demo收取电子邮件都收不到,发送的Demo也发不出去
解决方案 »
- combobox选中后执行查询表格显示在DBbrid中。
- 刚学delphi 请教个问题 Load按钮 在哪里? 在线等
- SQLServer Text类型的查询
- 如何用DELPHI实现隧道监控类的软件
- DBGRID中的排序
- 三层结构中用DCOMCONNECTION可以连接INTENET吗?
- MDI主窗体前加 登录窗口 的问题,急。。。。。。
- 请问:用fastReport打印时如何动态得给他指定一个网络上得打印机????????
- 毕业设计的摘要译文 急!!!高分,版主别删啊
- 在企业管理系统数据库设计中,部门、仓库、车间设计成一个表好呢还是设计成三个表好?
- 如何控制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;