关于邮件发送的问题(50分)

  • 主题发起人 主题发起人 qn-wl
  • 开始时间 开始时间
Q

qn-wl

Unregistered / Unconfirmed
GUEST, unregistred user!
以下是我的代码procedure TForm1.ButtonSendClick(Sender: TObject);

begin
screen.cursor := crHourGlass;
StatusBar1.Panels[0].Text := '请等待.....';
SakSMTP1.host := EditHost.text;
Saksmtp1.Port:='25';
SakMsg1.CharSet := 'ISO-8859-1';
SakMsg1.TextEncoding := te8Bit;
SakMsg1.UserName := EditUserName.text;
SakMsg1.From := EditFrom.text;
SakMsg1.SendTo := EditTo.text;
SakMsg1.Subject := EditSubject.text;

// memo1.Lines.Add('asasds');
SakMsg1.Text.Assign(Memo1.Lines);
SakSMTP1.connect;
if not SakSMTP1.SMTPError then
begin
BtnCancel.Enabled := true;
SakSMTP1.SendTheMessage( SakMsg1);
BtnCancel.Enabled := false;
SakSMTP1.Disconnect;
StatusBar1.Panels[0].Text := SakSMTP1.ReplyString;
end;
screen.cursor := crDefault;
end;
问题是在第一次发送后,我改了EditUserName.text后,再发第二次他还是用的第一次的用户名。请问这是为什么?
 
begin
[red] //这里加一句试试:
SakMsg.Clear; //可以吗?[/red]
screen.cursor := crHourGlass;
StatusBar1.Panels[0].Text := '请等待.....';
SakSMTP1.host := EditHost.text;
Saksmtp1.Port:='25';
SakMsg1.CharSet := 'ISO-8859-1';
SakMsg1.TextEncoding := te8Bit;
SakMsg1.UserName := EditUserName.text;
SakMsg1.From := EditFrom.text;
SakMsg1.SendTo := EditTo.text;
SakMsg1.Subject := EditSubject.text;

// memo1.Lines.Add('asasds');
SakMsg1.Text.Assign(Memo1.Lines);
SakSMTP1.connect;
if not SakSMTP1.SMTPError then
begin
BtnCancel.Enabled := true;
SakSMTP1.SendTheMessage( SakMsg1);
BtnCancel.Enabled := false;
SakSMTP1.Disconnect;
StatusBar1.Panels[0].Text := SakSMTP1.ReplyString;
end;
screen.cursor := crDefault;
end;
 
TO:zqw0117,
他没有CLEAR
感觉上去要将他原来的东西清空后再赋值 ,但找不到清除的方法
 
会有类似的方法吧?如果没有,看看SakSMTP控件有不?我以前用的indy中的类似控件都有Clear方法的。
 
找不到。你可以下载这个控件。地址如下:
http://soft.17755.com/SoftDown.asp?ID=12300&lbID=0
 
解决了,我还是用了INDY
 
接受答案了.
 
后退
顶部