Показать сообщение отдельно
  #1  
Старый 26.06.2007, 17:26
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию Как отправить почту с использованием TLS?

Собственно говоря в теме и вопрос. Я пробую отправить почту через 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');

то,
это место проходит, но проблема возникает дальше =(
Вобщем, если у кого есть немного времени, помогите плиз разобраться - очень нужно!!!
Спасибо!
__________________
THE CRACKER IS OUT THERE
Ответить с цитированием