经过我测试,indy控件可以达到你的目的,不过它只支持auth login的认证方式,我用它发送到了hotmail的邮件上。
下面是我的控件的设置:
object IdSMTP1: TIdSMTP
MaxLineAction = maException
ReadTimeout = 0
Host = 'somehost.com' <---- 你的服务器地址
Port = 25
AuthenticationType = atLogin <----- 认证类型要设置为atLogin
HeloName = 'yourname@somehost.com' <----- 你的邮件地址
Password = 'yourpassword' <----- 你的密码
Username = 'yourname' <----- 你的用户名
Left = 96
Top = 168
end
测试程序代码(我没有加标题,不过的确发到我的hotmail帐号上了:)):
procedure TForm1.Button2Click(Sender: TObject);
var
msg: TIdMessage;
begin
msg := TIdMessage.Create(nil);
try
msg.Recipients.Add.Address := 'xxx@hotmail.com'; <-- 接受人的地址
msg.Sender.Address := 'yourname@somehost.com'; <-- 发送人的地址
msg.Body.Text := 'test mail by indy smtp component.'; <-- 邮件内容
IdSMTP1.Connect(10);
IdSMTP1.Send(msg);
finally
msg.Free;
IdSMTP1.Disconnect;
end;
end;