Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Интернет и сети
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #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

Последний раз редактировалось 4kusNick, 30.06.2012 в 13:57.
Ответить с цитированием
  #2  
Старый 06.07.2007, 07:01
Аватар для 4kusNick
4kusNick 4kusNick вне форума
Местный
 
Регистрация: 06.09.2006
Адрес: Россия, Санкт-Петербург
Сообщения: 444
Репутация: 550
По умолчанию

Ладно, хрен с ним с синапсом, сделал я эту отправку через инди (10) и теперь жалею, что поленился разобраться с MAPI.
В общем, вот

Код:
    sPort := '587';
    sHost := 'smtp.gmail.com';

    IdSMTP.Host := sHost;
    IdSMTP.Password := sPassword;
    IdSMTP.Username := sUsername;
    IdSMTP.Port := StrToInt(sPort);
    IdSMTP.UseTLS := utUseExplicitTLS;

    IdSSLIOHandlerSocketOpenSSL.Destination := sHost + ':' + sPort;
    IdSSLIOHandlerSocketOpenSSL.Host := sHost;
    IdSSLIOHandlerSocketOpenSSL.Port := StrToInt(sPort);

    IdMessage.Body.AddStrings(saVal);
    IdMessage.From.Address := sFromAddress;
    IdMessage.From.Name := sFromName;
    IdMessage.Recipients.Add;
    IdMessage.Recipients.Items[0].Address := sToAddress;
    IdMessage.Recipients.Items[0].Name := sToName;
    IdMessage.Subject := sSubject;

    IdSMTP.Connect;
    IdSMTP.Send(IdMessage);
    IdSMTP.Disconnect(); 
    { вот на этой ^ строке отладка выходит из-под контроля (F10 и статус - Running), 
показывается MessageBox с ошибкой "Connection Closed Gracefully" и непонятно, 
почему =( В общем, я уже копался, копался, так не до чего и не докопался.
 Пробовал исключение в спиок игнорируемых добавлять - то же самое, пробовал в 
try..except.end помещать - все равно, весь код, что идет после этого try..except не 
работает и т.д. Плиз, если кто шарит, помогите разобраться с этим gmail'ом и TLS'ом
Может кто знает, как пользоваться MAPI правильно и с аутентификацией?
Любая инфа будет полезна}
__________________
THE CRACKER IS OUT THERE

Последний раз редактировалось 4kusNick, 06.07.2007 в 07:04.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 10:12.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter