【发布时间】:2012-02-16 11:58:13
【问题描述】:
我正在使用这段代码从 delphi indy 发送测试消息。 我有一个 TidSMTP、TIdMessage 和 IdSSLIOHandlerSocketOpenSSL;
在下面的代码中,如果我将其设置为使用带有 ssl 的 gmail,它可以正常工作,但是一旦我用我的 cpanel 邮件服务器详细信息替换我的服务器详细信息,它就不起作用错误:
“目前无法验证”。
我使用了与在 Outlook 2007 中设置帐户相同的详细信息。这是代码
IdSSLIOHandlerSocketOpenSSL 详细信息。
method := sslvsslv3
mode := sslmUnassigned
//rest default values
procedure Tfrmnotification.btnSendClick(Sender: TObject);
var
IdMsg : TIdMessage;
begin
begin
IdMsg := TIdMessage.Create(nil);
try
with TIdSMTP.Create(nil) do
try
// UserName := 'something@gmail.com';
// Password := 'pass';
// Host := 'smtp.gmail.com';
// IOHandler := IdSSLIOHandlerSocketOpenSSL;
// Port := 587;
UserName := 'something@sasra.co.za';
Password := 'password';
Host := 'outgoing server detials';// same as outlooks
IOHandler := IdSSLIOHandlerSocketOpenSSL;
Port := 465;// this is correct port
UseTLS:= utUseExplicitTLS;
IdMsg.Body.Add('test');
IdMsg.Recipients.emailAddresses := 'something@gmail.com';
IdMsg.Subject := 'test';
IdMsg.From.Address := 'something@sasra.co.za';
IdMsg.From.Name := 'john';
Connect;
Send(IdMsg);
Disconnect;
finally
Free;
end;
finally
IdMsg.free;
end;
showmessage('done');
end;
如有任何帮助,将不胜感激。
【问题讨论】:
-
所以你正在与之通信的服务器是交换服务器?那么问题是与 Exchange 建立 SSL 连接?当您尝试使用 Mozilla Thunderbird 电子邮件客户端时,它是否有效?如果它不起作用,您为什么要尝试为可能未配置为在服务器端正常工作的东西编写代码?
-
嗨 Warren P. 感谢您的回复。该服务器不是交换服务器。我的假设是,如果我可以从 Microsoft Office 2007 发送邮件,我应该能够对我的 delphi 代码执行相同的操作。我希望我只是错过了代码或组件属性中的某些内容。
-
那么,在 Exchange 以外的其他电子邮件程序中尝试一下,找出您需要的身份验证设置,这可能会告诉您该怎么做。 TLS等