我正在使用这段简单的代码发送邮件,它可以在大多数SMTP服务器上工作,但对于那些使用RFC 2554中定义的SMTP AUTH扩展的服务器,它会显示以下错误:
错误:DATA之前必须先输入有效的RCPT命令
以下是代码:
SMTP.Host := 'host.com';
SMTP.Port := 25;
SMTP.Username:= 'user@host.com';
SMTP.Password:= 'pass';
MailMessages.From.Address:='address@address.com';
MailMessages.From.Name:= 'Ehsan';
MailMessages.Subject := 'Test';
MailMessages.Body.Text := 'the body is going to test';
MailMessages.ReceiptRecipient.Address := 'ehsan.hesam13@gmail.com';
try
try
SMTP.Connect;
SMTP.Authenticate;
SMTP.Send(MailMessages);
except on E:Exception do
StatusMemo.Lines.Insert(0, 'ERROR: ' + E.Message);
end;
finally
if SMTP.Connected then SMTP.Disconnect;
end;
end;
我该如何在XE2中解决这个问题? 谢谢
try..except
块中看到语法错误。而且SMTP
和MailMessages
是什么样的对象? - GolezTrolReceiptRecipient
不是收件人。它是阅读通知(回执)的接收者,因此通常是发件人而不是收件人。 - GolezTrol