indy的问题:采用INDY开发的邮件发送出现了不可思异的问题!(300分)

  • 主题发起人 主题发起人 yicheng
  • 开始时间 开始时间
Y

yicheng

Unregistered / Unconfirmed
GUEST, unregistred user!
我在delphi采用indy中的TidSMTP与TidMessage开发了一个发送邮件的东东,请看代码:
procedure TForm1.Button1Click(Sender: TObject);
begin
with IdMessage1 do
begin
Clear; // 清除前一次產生的 body & headerm, 以免第二次按時重複
Body.Text:='adsfffffffffffffffffffffffffffffffffffffffffff';

From.Text :='yicheng@163.com'; // 寄件者
Recipients.EMailAddresses :='yicheng@163.com'; // 收件者
Subject :='';
end;

IdSMTP1.AuthenticationType := atLogin; {Simple Login}
IdSMTP1.Username :='yicheng';
IdSMTP1.Password :='******';
IdSMTP1.Host :='smtp.163.com';
IdSMTP1.Port := 25;
try
IdSMTP1.Connect;
try
IdSMTP1.Send(IdMessage1);
ShowMessage('E-Mail 已寄出');
finally
IdSMTP1.Disconnect;
end;
except
on e: exception do
begin
ShowMessage('Mail 寄送失敗:' + e.Message);
end;
end;
end;

这样,会出一个错误:bad sequence of command!
应该是命令次序出现错误。

这时,我修改了IdSMTP,屏掉IDSMTP中的 sendCmd('RSET')这句话,
运行程序,正常。也就是我可以正常发送邮件了。

现在,我将这段代码考到我的程序中,测试了一天,就是出现“bad sequence of commands”.

我可是一字不变的考过来的,却怎么会出现这样的问题???
 
报这个错,应该是被邮件服务器把发的邮件给中止了
你的做法没错,但我估计是你屏掉IDSMTP中的 sendCmd('RSET')这句话后
Indy包没有重新编译,或者是改变的dcu文件没有替换原来delphi中的dcu文件。
 
再试试


现问题是,我单独开一个unit,是可以发送的,
而后来我,将这个可以发送的代码,完全拷贝到我的程序中,却出现bad sequence of commands的错误!!!
 
接受答案了.
 
少了校验
SMTP.Authenticate;
加上这句就可以了
我也出线这个问题了
 
后退
顶部