Собственно говоря в теме и вопрос. Я пробую отправить почту через
synapse (http://synapse.ararat.cz/), там какая-то неразбериха с TLS
вот код:
bResult := SendToEx('***1@gmail.com','***2@gmail.com','sub','smtp.gmai l.com:465',saVal,'***1','***1');
в исходниках Synapse
в процедуре
function SendToRaw(const MailFrom, MailTo, SMTPHost: string;
const MailData: TStrings; const Username, Password: string): Boolean;
var
SMTP: TSMTPSend;
s, t: string;
begin
Result := False;
SMTP := TSMTPSend.Create;
try
// if you need SOCKS5 support, uncomment next lines:
// SMTP.Sock.SocksIP := '127.0.0.1';
// SMTP.Sock.SocksPort := '1080';
// if you need support for upgrade session to TSL/SSL, uncomment next lines:
// расскомментил строку
SMTP.AutoTLS := True;
...
Вобщем все по началу идет как надо, но потом в прцедуре
Код:
function TSMTPSend.ReadResult: Integer;
var
s: string;
begin
Result := 0;
FFullResult.Clear;
repeat
// на этой строке все повисает
s := FSock.RecvString(FTimeout);
FResultString := s;
FFullResult.Add(s);
if FSock.LastError <> 0 then
Break;
until Pos('-', s) <> 4;
s := FFullResult[0];
if Length(s) >= 3 then
Result := StrToIntDef(Copy(s, 1, 3), 0);
FResultCode := Result;
EnhancedCode(s);
end;
Эта процедура вызывается из ф-ии
Код:
function TSMTPSend.Login: Boolean;
var
n: Integer;
auths: string;
s: string;
begin
Result := False;
FESMTP := True;
FAuthDone := False;
FESMTPcap.clear;
FESMTPSize := False;
FMaxSize := 0;
if not Connect then
Exit;
if ReadResult <> 220 then
Exit;
if not Ehlo then
...
Причем, если вызывать без указания порта
bResult := SendToEx('***1@gmail.com','***2@gmail.com','sub','smtp.gmai l.com',saVal,'***1','***1');
то,
это место проходит, но проблема возникает дальше =(
Вобщем, если у кого есть немного времени, помогите плиз разобраться - очень нужно!!!
Спасибо!