你一定能给我答案 (100分)

  • 主题发起人 主题发起人 780626
  • 开始时间 开始时间
7

780626

Unregistered / Unconfirmed
GUEST, unregistred user!
请问在Delphi6中使用 NMSMTP1来发送邮件,
with NMSMTP1 do
begin
Host:='pub.zhuhai.gd.cn';
port:=25;
userID:='zhyuhua';
Connect;
postMessage.fromAddress:='zhyuhua@pub.zhuhai.gd.cn';
postMessage.fromname:='财务部来函';
postMessage.ToAddress.Add('linwangxian@msn.com');
postMessage.Subject:='财务部来函';
postMessage.Body.Assign(txtbody.Lines);
sendMail;
end;
出错信息为:503 need RCPT before DATA
可能邮件服务器发送邮件时需要密码了,但不知如何处理?请各路高手指点.
 
NMSmtp1.Host:=Edit3.Text; //SMTP服务器地址
  NMSmtp1.UserID:=Edit4.Text; //你在对应服务器上的注册用户名
  NMSmtp1.Connect; //与服务器建立连接
  NMSmtp1.PostMessage.FromAddress:=Edit5.Text; //发件人的邮件地址
  NMSmtp1.PostMessage.Subject:=Edit2.Text; //邮件主题
  NMSmtp1.PostMessage.ToAddress.Add(Edit1.Text); //收件人的邮件地址
  NMSmtp1.PostMessage.Attachments.AddStrings(ListBox1.Items); //附件
  NMSmtp1.PostMessage.Body.Assign(Memo1.Lines); //邮件的正文
  NMSmtp1.SendMail; //发送邮件
  NMSmtp1.Disconnect; //断开连接
  ShowMessage('发送完毕!'); //发送完时显示提示信息
  end;

procedure TForm1.NMSMTP1Connect(Sender: TObject);
var
strUserName,strPassword:string;
begin
{如果SMTP服务器需要认证,则进行认证}
if chkSmtpVerify.Checked = True then
begin
{对用户名和密码进行Base64编码}
strUserName:=EncodeString(txtUserName.Text);
strPassword:=EncodeString(txtPassword.Text);
{进行认证,输入编码后的用户名、密码}
nmsmtp1.Transaction('auth login');
nmsmtp1.Transaction(strUserName);
nmsmtp1.Transaction(strPassword);
end;
end;

 
应该可以。我曾经是过你先看看。
 
To w.th 我为何编译不过去。说EncodeString 没有定义
procedure TForm1.NMSMTP1Connect(Sender: TObject);
var
strUserName,strPassword:string;
begin
{如果SMTP服务器需要认证,则进行认证}
if chkSmtpVerify.Checked = True then
begin
{对用户名和密码进行Base64编码}
strUserName:=EncodeString(txtUserName.Text);
strPassword:=EncodeString(txtPassword.Text);
{进行认证,输入编码后的用户名、密码}
nmsmtp1.Transaction('auth login');
nmsmtp1.Transaction(strUserName);
nmsmtp1.Transaction(strPassword);
end;
end;
 
后退
顶部