Форум программистов, компьютерный форум, киберфорум
Наши страницы
Delphi: Сети
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.63/49: Рейтинг темы: голосов - 49, средняя оценка - 4.63
anonimus
2158 / 1248 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
1

Отправка писем SSL

24.04.2014, 18:20. Просмотров 9557. Ответов 22
Метки нет (Все метки)

КАК? Это ж уму не постижимо, неужели делфи реально умирает, что бы элементарно отправить письмо с использованием современных требований SMTP серверов (Gmail, Mail.ru, yandex) нужно нехило поплясать с бубном.
Установил инди 10, а точнее 10.0.52 (т.к. с инди 9 даже не стоило и пытаться), делал все как в статье
http://psvlab.blogspot.ru/2010/04/ssl-indy-10-open-ssl.html
результат, ошибка
"could not load ssl library"
В нете пишут что нужны какие-то определенные libeay32.dll и ssleay32.dll, так где ж их найти именно те что заработают, это как искать иглу в стоге сена.
Попробовал взять отсюда
http://indy.fulgan.com/SSL/
скачал первые 3 (что для 32 разрядной ОС) результат тот же. Вот это тоже удивляет, как так indy разработчики пишут компонент под какие-то определенные библиотеке, не стандартные, FTW!

Что говорить если даже пример с оф сайта инди
http://www.indyproject.org/Sockets/Demos/index.EN.aspx
не работает, приложение зависает и все.

Рещил обратиться за помощью к synapse, помню как-то он меня выручил когда нужно было работать с https, инди так же глючил.
Скачал модули:
http://sourceforge.net/p/synalist/code/HEAD/tree/trunk/

пример взял отсюда:
http://www.webdelphi.ru/2010/02/synapse-otpravka-pisem-ispolzuya-smtp/

в итоге все зависает секунд на 30 на строке SMTP.Login в функции SendToRaw в модуле smtpsenp.pas видать внутри происходит исключение, только оно глушится, после SMTP.Login попадаем в finally и на выход, ничего не сделав.

Плюнул на этот SSL нашел почтовый сервис у которого SMTP по старинке на 25 порту, попытался отправить письмо используя все тот же инди 10, ошибка! (скрин приложенил) Единственое этот SMTP для отправки почты требует авторизацию, но в инди 10 AuthType тлоько atDefault, atNone и atSASL на всех трех эта ошибка. В 9-м инди был вроде тип что-то вроде atLogin.

Дорогие форумчанены, как-так? Если у кого-то есть рабочий пример отправки писем с использованием ssl, +100 к карме ))
0
Миниатюры
Отправка писем SSL  
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.04.2014, 18:20
Ответы с готовыми решениями:

Отправка почты SSL
Уже создавались такие темы, но проблема осталась. Как отправить письмо с помощью SLL?

Отправка писем
Как сделать чтобы одновремено отправиль две писма на оделенме почты. Чтобы писма отправиль на...

отправка писем
Как отправлять письма на почту?

Отправка писем на почту
idsmtp2.Host:='smpt.yandex.ru'; idsmtp2.Host:= IntToStr(25); idsmtp2.Username:='*******';...

Отправка почты SMTP сервер и SSL
Всем доброго времени суток, извините за тему, просто другого решения не смог найти, два дня...

22
anonimus
2158 / 1248 / 143
Регистрация: 28.04.2010
Сообщений: 4,592
13.11.2014, 11:07  [ТС] 21
FaTaL-CS, код отправки у тебя может быть правильный, у меня с ssl проблема была в том что некоторые функций из dll не загружались, небе нужно поставить точку останова в месте загрузки этих ф-й (выше через комментарий я писал) у меня одни не загружались, у тебя может другие не загрузятся, фиг знает.
Кстати какой у тебя инди?

Если не выйдет вечером могу скинуть поправленный инди модуль (в котором я то что не грузилось закоментировал) у меня 10-й был инди
0
FaTaL-CS
70 / 70 / 23
Регистрация: 14.10.2013
Сообщений: 528
13.11.2014, 11:51 22
Разобрался с SSL. Вот если кому надо полный код отправки:
Delphi
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
var
  SMTP    : TIdSMTP;
  msg     : TIdMessage;
  SSLOpen : TIdSSLIOHandlerSocketOpenSSL;
begin
  SMTP := TIdSMTP.Create(Application);
  SMTP.Host := 'smtp.mail.ru';
  SMTP.Port := 465;
  SMTP.AuthType := satDefault;
  SMTP.Username := 'my_login@mail.ru';
  SMTP.Password := 'MyPass';
  
  //это необходимо использовать для SSL
  SSLOpen := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  SSLOpen.Destination := SMTP.Host+':'+IntToStr(SMTP.Port);
  SSLOpen.Host := SMTP.Host;
  SSLOpen.Port := SMTP.Port;
  SSLOpen.DefaultPort := 0;
  SSLOpen.SSLOptions.Method := sslvSSLv23;
  SSLOpen.SSLOptions.Mode := sslmUnassigned;
 
  SMTP.IOHandler := SSLOpen;
  SMTP.UseTLS := utUseImplicitTLS;
 
  msg := TIdMessage.Create(Application);
  msg.Subject := 'Проверка почты';
  msg.From.Address := 'my_login@mail.ru';
  msg.From.Name := 'FaTaL';
  msg.Recipients.EMailAddresses := 'sender@mail.ru';
 
  SMTP.Connect;
  if SMTP.Connected then
    begin
      SMTP.Send(msg);
      ShowMessage ('Сообщение отправлено');
    end else
      ShowMessage ('Не удалось отправить сообщение');
  SMTP.Disconnect();
  SMTP.Free;
  msg.Free;
end;
Библиотеки брал последние Win32OpenSSL_Light-1_0_1j.exe

Добавлено через 6 минут
anonimus, Версия Delphi XE7, стандартная поставка INDY в комплекте.
5
Shouldercannon
3 / 3 / 8
Регистрация: 25.05.2010
Сообщений: 143
16.02.2015, 10:00 23
Также можно взять DLL здесь http://indy.fulgan.com/SSL
1
16.02.2015, 10:00
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.02.2015, 10:00

Отправка письма на mail.ru SSL защита
Не приходит письмо. В чем трабл? procedure TForm1.Button1Click(Sender: TObject); var Msg:...

Отправка писем через gmail
Доброго времени суток. Ребят подскажите как можно отправлять письма через gmail, я пытаюсь...

Delphi 2010 и отправка писем на мыло
Добрый день! Во всех версах отправка писем работает стабильно по методу: IdSmtp1.Host:=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru