powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ssl is not available on this server при отправке через TidSMTP
12 сообщений из 12, страница 1 из 1
ssl is not available on this server при отправке через TidSMTP
    #39659882
bilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Я отправляю письма с почты mail.ru, yandex.ru. отправляю с ssl так как иначе не дает.

код моей отправки...
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
procedure SendOnEmail;
var
 IdSMTP1: TIdSMTP;
 idMessage1: TIdMessage;
 idAttach: TidAttachment;
 idText1: TidText;
 p: TidMessageParts;
 DT:TDateTime;
 IdSSLIOHandlerSocketOpenSSL1:TIdSSLIOHandlerSocketOpenSSL;
 ExFileName2:string;
 NeedCopy:boolean;
 sa:TStringDynArray;
 I:integer;
begin



    IdSMTP1 := TIdSMTP.Create(nil);

    try
        IdSMTP1.Host:= MailHost;
        IdSMTP1.Password:= EmpPsw;
        IdSMTP1.Username:= EmpUser;


        if
        (Pos('.yandex.ru',MailHost)>0) or
        (Pos('.mail.ru',MailHost)>0) or
        (Pos('.gmail.ru',MailHost)>0)
        then
        begin

          IdSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create(IdSMTP1);

          IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;
          IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Mode := sslmUnassigned;
          IdSSLIOHandlerSocketOpenSSL1.SSLOptions.VerifyDepth := 0;

          IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;
          if EmPort>0 then
          IdSMTP1.Port := EmPort
          else
          IdSMTP1.Port := 465;
          IdSMTP1.UseTLS := utUseExplicitTLS;
          IdSMTP1.ReadTimeout := 15000;
        end;




        idMessage1 := TIdMessage.Create(IdSMTP1);
        idMessage1.OnInitializeISO := LInitializeISO;
        idMessage1.From.Address := EmpEmail;
        idMessage1.From.Name := EmpName;//'Степан Иванов';
        idMessage1.Subject := EmSubject;//'Письмо с картинкой AComp'+FormatDateTime('dd.mm.yyyy hh:mm:ss',Now);

        idMessage1.CharSet := 'Windows-1251';
        idMessage1.ContentTransferEncoding  := '8bit';




        p := idMessage1.MessageParts;
        try
         // Load slBody with your HTML text...
          idText1 := TidText.Create(p);//, slBody);
          idText1.ContentType := 'text/html';
          idText1.CharSet := 'Windows-1251';
          idText1.ContentTransfer := '8bit';
          //if FileExists(EmBodyFileName) then
          idText1.Body.AddStrings(EmailBody);

          if EmailBody.Count>0 then
          if trim(FilePicture)<>'' then
          if not FileExists(FilePicture) then
          AddClSmallLog('А файла фотки тела письма "'+FilePicture+'" нету!')
          else
          begin
            idAttach := TIdAttachmentFile.Create(p,FilePicture);// TidAttachment.Create(p);

            idAttach.ContentType := 'image/jpeg';
            idAttach.ContentDisposition := 'inline';
            idAttach.ExtraHeaders.Values['content-id'] := ExtractFileName(FilePicture);

            idAttach.DisplayName := ExtractFileName(FilePicture);
            idMessage1.ContentType := 'multipart/mixed';
          end;
          //SetFilePath(s,False);


          if FileExists(ExFileName2) then
          TIdAttachmentFile.Create(idMessage1.MessageParts, ExFileName2);





          idMessage1.Recipients.EMailAddresses := Email;
          idSMTP1.Connect;
          idSMTP1.Send(idMessage1);

        finally
         if idSMTP1.Connected then
         idSMTP1.Disconnect;
         idSMTP1.Free;

        end;


    except
      on E:Exception do
      begin
       E.Message := STClCode +'- Ошибка E-mail: ' + E.Message;
       raise;
      end;
    end;


end;




На компе на котором скомпиллировано работает, и на одном другом тоже. На всех остальных нет, дает "ssl is not available on this server" при idSMTP1.Send(idMessage1);. У меня Delphi 2010 и Indy 10.5.5. Павда дома где Delphi XE7 ведет себя также. Если почта не такая а рабочая доменная типа @myfirm.ru то все норм как с IdSSLIOHandlerSocketOpenSSL1 так и без него.Скажите пожалуйста что тут можно сделать чтобы работала на всех.
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660011
Фотография Exteris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Библиотеки ssleay32.dll и libeay32.dll есть в системе?
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660054
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вау !!! Я только хотел создать топик про сабж....
Меня конкретно интересует сабж для гмайл. На нем включен IMAP и разрешение работы с небезопасными приложениями.

Не смотря на обилие примеров, ни один из них так просто не работает.
Использование ИНДИ предусматривает установку ssleay32.dll и libeay32.dll. Но.... их разновидностей много и они специфичны для каждой ОС.
Мне не удалось подобрать вариант для Вин10. При этом у юзера могут быть какие угодно ОС: 32/64 XP/7/8/10/серверные.

Также есть полезный ресурс где много примеров.
Там можно выкачать некислого размера инсталл для СОМ-объекта EA_SendMail.DLL. с которым идут многочисленные примеры.
Делфийский пример таки работает. Но.... он открывает браузерное окно для входа в гугл-эккаунт, чтобы получить оттуда токен безопасности, который помещается в качестве пароля в TMail: oSmtp.Password := m_accessToken.
Как попроще получить этот токен, я пока не разобрался.

А еще встречал экзотический способ: выполнение powershell-скрипта. :)

Не исключаю, что у разных почтовых служб, публичных или корпоративных будут свои отличия и косяки.

зы: Куда катится ИТ ??? Мегабайты кода, куча внешних специфичных и глючных DLL, браузеров, JSON-парсеров и это только для отправки сраного письма.
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660178
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoМне не удалось подобрать вариант для Вин10. При этом у юзера могут быть какие угодно ОС: 32/64 XP/7/8/10/серверные.
Не забывайте о прокси, портах, брандмауэрах.
Стараюсь использовать ssleay32.dll и libeay32.dll последних версий. Не забывайте про x86/x64.
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660183
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не забывайте про тип шифрования, т.е. нужно выбирать TLS 2.1 / SSL 2.3.
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660186
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
X11L_argoМне не удалось подобрать вариант для Вин10. При этом у юзера могут быть какие угодно ОС: 32/64 XP/7/8/10/серверные.
Не забывайте о прокси, портах, брандмауэрах.
Стараюсь использовать ssleay32.dll и libeay32.dll последних версий. Не забывайте про x86/x64.Порты и прокси не мешают.
Через EA_SendMail все работает.

Кароч универсального и надежного способа по сабжу наверно не существует в природе. :(
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660188
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
по SMTP:
https://support.google.com/mail/answer/7126229?hl

для SSL порт = 465, для TLS порт = 587
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660189
Фотография X11
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoКароч универсального и надежного способа по сабжу наверно не существует в природе. :(

Всё существует. Только нужно документацию читать по конкретному серверу.
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660234
bilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сейчас проверяю на одном компе. Раньше там не высылало на недоменную почту давало 'Read timed out'. После того как рядом с прогой положил libeay32.dll и ssleay32.dll такое стало давать только в первый раз после запуска проги, а потом нормально высылает. Это уже замечательно. Но при закрытии проги выдает сообщение 'Rutime error 216 at 00404DFA'. Нужно ещё узнать в какой конкретно момент это происходит. Это сообщение нужно будет обязательно убрать так как моя прога автоматически запускается, обо всех ошибках должна писать в лог и не выдавать никаких окон с сообщениями
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660277
Фотография _Vasilisk_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
L_argoИспользование ИНДИ предусматривает установку ssleay32.dll и libeay32.dll. Но.... их разновидностей много и они специфичны для каждой ОС.Более того - эти библиотеки должны быть заточены целенаправленно под инди 20771195 , 20771658
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39660288
L_argo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_Vasilisk_L_argoИспользование ИНДИ предусматривает установку ssleay32.dll и libeay32.dll. Но.... их разновидностей много и они специфичны для каждой ОС.Более того - эти библиотеки должны быть заточены целенаправленно под инди 20771195 , 20771658 Поставил.
Результат стал чуть другой:

Error connecting with SSL.
-- ОК --

Это лютый ппц, как для такой простой задачи....
У мну Вин10.
...
Рейтинг: 0 / 0
ssl is not available on this server при отправке через TidSMTP
    #39661323
bilov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверял на компах на которых глючило. Раньше там не высылало на недоменную почту давало 'Read timed out'. После того как рядом с прогой положил libeay32.dll и ssleay32.dll такое стало давать только в первый раз после запуска проги, а потом нормально высылает. Это уже замечательно. Но при закрытии проги выдает сообщение 'Rutime error 216 at 00404DFA'. Преодолеть это пока удалось только таким жестким способом
Код: pascal
1.
2.
3.
4.
procedure TForm1.FormDestroy(Sender: TObject);
begin
 Application.Terminate;
end;

Form1 - главная форма проги. У меня все важные компоненты динамически сознаются и в той же процедуре удаляются. Так что скорее всего это допустимо
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / ssl is not available on this server при отправке через TidSMTP
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]