为什么我自己做的发送邮件程序用163的帐号不能发送?(100分)

  • 主题发起人 主题发起人 warket
  • 开始时间 开始时间
W

warket

Unregistered / Unconfirmed
GUEST, unregistred user!
为什么我自己做的发送邮件程序用163的帐号不能发送?而用其他的邮箱就可以呢?
另外用outlook等软件是可以发送邮件的。
程序用到了。
SMTP: TIdSMTP;
IdMessage1: TIdMessage;


procedure tform1.sendmail(afile1,afile2,afile3,afile4,title:string);
var
ldset:Tinifile;
UserEmail:string;//收件人邮件地址
SmtpServerUser:string;//登陆SMTP服务器的用户名
SmtpServerPassword:string;//登陆SMTP服务器用到的密码
SmtpServerName:string;//SMTP服务器名.例如:smtp.sohu.com
SmtpServerPort:integer;//SMTP服务器端口,默认的是25
with IdMessage1 do
begin
UserEmail:='yhlundu@163.com';
SmtpServerUser:='yhlundu@163.com';
SmtpServerPassword:='yh12345678ld';
SmtpServerName:='smtp.163.com';
SmtpServerPort:=25;
From.Text := 'yhlundu@163.com';//发件人
ReplyTo.EMailAddresses :=UserEmail ;
Recipients.EMailAddresses :=UserEmail; { To: header }//收件人地址
Subject := title; { Subject: header } //邮件主体
if afile1<>'' then
TIdAttachment.Create(IdMessage1.MessageParts,afile1) ;
if afile2<>'' then
TIdAttachment.Create(IdMessage1.MessageParts,afile2) ;
if afile3<>'' then
TIdAttachment.Create(IdMessage1.MessageParts,afile3) ;
if afile4<>'' then
TIdAttachment.Create(IdMessage1.MessageParts,afile4) ;

SMTP.AuthenticationType := atLogin; {Simple Login }
memo1.Lines.Add('UserEmail '+UserEmail);
memo1.Lines.Add('SmtpServerUser '+SmtpServerUser);
memo1.Lines.Add('SmtpServerPassword '+SmtpServerPassword);
memo1.Lines.Add('SmtpServerName '+SmtpServerName);


SMTP.Username := SmtpServerUser;
SMTP.Password := SmtpServerPassword;

{General setup}
SMTP.Host := SmtpServerName;
SMTP.Port := SmtpServerPort;

{now we send the message}
SMTP.Connect;

try
SMTP.Send(IdMessage1);
//showmessage('发送成功!');
except
//memo1.Lines.LoadFromFile(ExtractFilePath(Application.ExeName )+'senderr.log');
//memo1.Lines.Add('邮件发送失败,时间为'+DateTimeToStr(now)+' 内容为 '+title);
//memo1.Lines.SaveToFile(ExtractFilePath(Application.ExeName )+'senderr.log');
//showmessage('发送失败!');
end;
SMTP.Disconnect;
end;
ldset.Free;
end;



出现了 bad sequence of commands 的错误提示!
不知道为什么?
 
屏蔽了INDY
 
如果用的是indy9,就会出现这种情况。如果indy10不会出现。
要想用indy9能发出,需要更改delphi自带的单元模块。这里有
详细说明,试一下。http://www.delphibbs.com/delphibbs/dispq.asp?lid=3359545。
 
我按照他们说的。。。
找到procedure TIdSMTP.Send(AMsg: TIdMessage);这个函数将SendCmd('RSET');这行注销
2、IdMessageCoderMIME这个单元,将下面的常量IndyMIMEBoundary,IndyMultiPartAlternativeBoundary,IndyMultiPartRelatedBoundary改成你自己需要的就可以了。
但是还是不能用啊!!!
 
顶,我也是照上做的,但也出现楼上的情况
 
后退
顶部