Форум программистов, компьютерный форум, киберфорум
Delphi: Сети
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.63/205: Рейтинг темы: голосов - 205, средняя оценка - 4.63
5 / 5 / 0
Регистрация: 26.04.2012
Сообщений: 36

Как использовать SSL для отправки почты на Delphi 7 Indy 9

02.03.2014, 16:15. Показов 46946. Ответов 73

Студворк — интернет-сервис помощи студентам
Прошу помощи в реализации кода для отправки почты. Не прошу сделать все за меня, программа уже многое время работала но недавно на mail.ru сделали обязательным SSL. Если кто знает объясните что надо подключить и как прилепить SSL к IdSMTP . Возможно ли это сделать без установки Indy 10?

Добавлено через 13 часов 31 минуту
Неужели никто не знает? Я на форму кинул TIdSSSLIOHandlerSocket , TIdSocksInfo
Для IdSocksInfo1 задал свойства Username Pasword соответствующие логин и паролю ящика а также Port 465 Version svNoSocks
Для IdSSLIOHandlerSocket1 задал SSLOptions.metod sslvSSLv2 - ну пробовал и другие варианты
В коде писал примерно это
Delphi
1
2
3
4
5
6
7
8
9
  IdSSLIOHandlerSocket1.SocksInfo:=IdSocksInfo1;
  idSmtp1.IOHandler := IdSSLIOHandlerSocket1;
  idSmtp1.Host := 'smtp.mail.ru';
  idMessage1.Body.Text := ' Hello World ';
  idMessage1.From.Text := 'mymailsend@mail.ru';
  idMessage1.Recipients.EMailAddresses := 'vasyapupkin@mail.ru';
  idMessage1.Subject := 'tema ';
  
  idSmtp1.Connect(15000);
Выдает разные ошибки в зависимости от вариаций, то какие то библиотеки требует то еще что то, есть у кого рабочий примерчик как это делать?
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.03.2014, 16:15
Ответы с готовыми решениями:

Можно ли для отправки почты из asp использовать MAPI?
а можно ли для отправки почты из asp использовать MAPI?

Как правильно использовать класс отправки почты из формы?
уважаемы кодеры помогите разобраться с кодом!? как мне правильно поставить приписать к почте Class 1 ? пример кусок начало Public Class...

Можно ли использовать учетную запись outlook на сервере для отправки почты со страниц АСП???
Уважаемые ГУРУ!!! Ищу выход из ситуации, с SMTP сервером лажа..... Можно ли использовать учетную запись outlook на сервере для...

73
Эксперт С++
 Аватар для Avazart
8489 / 6156 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
03.11.2014, 12:09
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от NIKOLAYY Посмотреть сообщение
Я не любитель полурабочих приложений, если вас такие устраивают- это хорошо. Но меня нет.
Лол.
0
844 / 739 / 342
Регистрация: 22.09.2012
Сообщений: 5,034
03.11.2014, 12:11
Поэтому тест непомешал бы на всех системах и на "износ" так сказать, как и делают опытные программисты. Иной раз время на тест уходит в разы больше времени чем на написание программы. Ну у меня так.
0
0 / 0 / 0
Регистрация: 29.03.2013
Сообщений: 81
08.11.2014, 17:06
как сделать что можно было прикреплять не один файл как тут
Delphi
1
  tmpMsg.AddPartBinaryFromFile (CurrentAttachedFileName, nil);
а несколько?

дописал это в готовый поиск, но что - то не получается
Delphi
1
2
3
4
5
 for i:=0 to ListBox1.Items.Count-1 do
  begin
      test:=(String(integer(ListBox1.Items[Listbox1.ItemIndex+1])));
      tmpMsg.AddPartBinaryFromFile (test, nil);
    end;
0
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 35
24.05.2015, 09:05
Выложите рабочий исходник со всеми прикреплёнными библиотеками. Бьюсь уже вторую неделю и инди обновлял и что только не делал, пару раз приходилось переустанавливать delphi что-то криво вставало.
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 22
19.08.2015, 01:24
Вдруг кому то пригодится....
рабочий код 100% и все со стандартными компонентами
среда Delphi 7
На форму кидаем компоненты IdSMTP и IdMessage, IdSSLIOHandlerSocket(Indy I/O Handlers) и IdSocksInfo(Indy Misc)
На обработчик нажатия кнопки пишем код:

Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
IdSocksInfo1.Authentication:= saNoAuthentication;
IdSocksInfo1.Port:=465;
IdSocksInfo1.Version:=svNoSocks;
IdSSLIOHandlerSocket1.SocksInfo:= IdSocksInfo1;
IdSSLIOHandlerSocket1.SSLOptions. Method:=sslvTLSv1;
idSmtp1.IOHandler:= IdSSLIOHandlerSocket1;
idSmtp1.AuthenticationType:=atLogin;
idSmtp1.Host := 'smtp.mail.ru';
idSmtp1.Password:='password';
idSmtp1.Port:=465;
idSmtp1.Username:='login';
idMessage1.Body.Text := 'текст письма';
idMessage1.From.Text := 'login@mail.ru'; // от кого
idMessage1.Recipients.EMailAddresses := 'test@mail.ru'; // кому
idMessage1.Subject := 'TEST';//тема письма
idSmtp1.Connect(15000);
idSmtp1.Send(idMessage1);
idSmtp1.Disconnect;
0
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 35
19.08.2015, 05:47
Не работает этот способ, выдаёт ошибку.



Библиотеки libeay32.dll и ssleay32.dll устанавливал. Правда на 64 разрядную не нашел ssleay
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 22
19.08.2015, 13:24
У тебя с dll - ками проблема. У меня такую ошибку выдаёт когда я убираю из папки с проектом эти две библиотеки.

Добавлено через 3 минуты
Вот возьми
https://yadi.sk/d/81wFMGtwiXqFN
0
0 / 0 / 0
Регистрация: 13.10.2014
Сообщений: 35
19.08.2015, 13:41
Спасибо тебе огромное друг! Твои библиотеки реально работают. От меня плюсик!
0
0 / 0 / 0
Регистрация: 19.08.2015
Сообщений: 22
19.08.2015, 23:21
рад был помочь!

Добавлено через 2 минуты
Тут есть еще небольшая проблемка - тема письма отображается краказябрами. Это наверно в сторону кодировок надо копать, я думаю

Добавлено через 8 часов 48 минут
ни у кого нет идей, как сделать?

Добавлено через 40 минут
решил проблему сам

Добавлено через 4 минуты
Нужно было лишь в процедуру инициализации IdMessage1InitializeISO добавить кодировку так

Delphi
1
VCharSet :='windows-1251';
теперь код полностью рабочий
0
0 / 0 / 0
Регистрация: 26.09.2014
Сообщений: 12
23.05.2016, 17:44
Здравсвуйте, Переустановил ОС Виндовс, установил заново Дельфи. Теперь открываю сохраненный исходник дельфи, а он не компилирует, а пишет [Fatal Error] Unit1pr.pas(10): File not found: 'ssl_openssl.dcu'. Что делать? помогите.
файлы libeay32.dll, ssleay32.dll. лежат в папке.
0
2 / 2 / 0
Регистрация: 23.11.2015
Сообщений: 57
23.05.2016, 18:30
Вот скачай: СКАЧАТЬ
У меня такое было, заново просто перекал библиотеки.
0
0 / 0 / 0
Регистрация: 26.09.2014
Сообщений: 12
23.05.2016, 18:33
Эти файлы libeay32.dll, ssleay32.dll. есть у меня.И раньше все работало. После новой установки Виндовс и Дельфи, началась проблема
0
2 / 2 / 0
Регистрация: 23.11.2015
Сообщений: 57
23.05.2016, 18:38
скачай под свою версию СКАЧАТЬ
Delphi тотже ставил или скачивал новый инсталлятор? Проблема скорее всего в версии Indy компонента. Я когда обновлял Indy было что-то подобное.
0
0 / 0 / 0
Регистрация: 26.09.2014
Сообщений: 12
23.05.2016, 18:44
Виндовс 7-64. тот же. Дельфи-7 тоже тот же.
Впервые устанавливал libeay32.dll, ssleay32.dllа 2 года назад.
Теперь вот не помню, как это было? что может Indy компонент? что с ним делать?
0
2 / 2 / 0
Регистрация: 23.11.2015
Сообщений: 57
23.05.2016, 18:46
Скачай по ссылке выше, свежий пак, просто в самом низу архив там, в нем библиотеки и прочие полезности. Это сайт разработчика библиотеки.
0
0 / 0 / 0
Регистрация: 26.09.2014
Сообщений: 12
23.05.2016, 18:56
не помогает, эти 2 файла libeay32.dll, ssleay32.dll лежат в папке с исходниками. А еще их куда-то закидывать? например в саму папку с Дельфи.

Добавлено через 4 минуты
Вчера только все работало, а сегодня после переустановки Виндовс и дельфи7 перестало работать
0
2 / 2 / 0
Регистрация: 23.11.2015
Сообщений: 57
23.05.2016, 20:24
ждём ответ от пользователей. наверняка помогут. судя по ошибке не может найти ssl_openssl.dcu , но если файл там, то скорее всего Indy виноват
0
17 / 17 / 4
Регистрация: 20.08.2010
Сообщений: 128
24.05.2016, 15:38
ssl_openssl.dcu
Укажи в делфи где у тя Synapse...
0
0 / 0 / 0
Регистрация: 26.09.2014
Сообщений: 12
24.05.2016, 18:54
как указать в делфи _Synapse_???

Добавлено через 2 часа 48 минут
Synapse я установил. указал путь. Не помогает. Какую еще библиотеку установить?

Добавлено через 21 минуту
Получилось

1. Скачать библиотеку Synapse:
http://www.ararat.cz/synapse/l... apse40.zip
2. Положить содержимое архива в произвольную папку, но чтобы в пути не было символов кириллицы, и чтобы эта папка не менялась.
3. Найти в ней файл smtpsend.pas
4. Раскомментировать строчку
DelphiВыделить код
1
SMTP.AutoTLS := True;
5. Открыть Delphi,
в меню Tools открыть Environment Options, вкладка Library
(у меня Delphi 7, в более новых - Tools -> Options -> Environment Options).
6. Там прописать путь к папке Lib из вышеустановленного пакета (добавить к уже имеющимся путям). Проделать это нужно дважды: 1) для Library Path; 2) для Browsing Path (там все увидите).
В обоих случаях указать путь к Lib и нажать кнопку Add.
7. После окончательного "Ok" библиотека в Delphi прописана - можно работать.

помог ответ Nick Veremey
0
0 / 0 / 0
Регистрация: 12.01.2015
Сообщений: 6
24.05.2016, 21:50
Такая же проблема. Пишу в борлэнд делфи 7. Синапс использую. Все перепробовала программа виснет.
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
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
unit MainU;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls,ComCtrls,
  smtpsend, mimemess, mimepart,ssl_openssl;
 
type
  TForm1 = class(TForm)
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Edit2: TEdit;
    Label3: TLabel;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    OpenDialog1: TOpenDialog;
    Memo1: TMemo;
    Label4: TLabel;
    procedure Button1Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form1: TForm1;
 
implementation
 
{$R *.dfm}
 
Procedure SendMail (Host, Subject, pTo, From , TextBody,
                HTMLBody, login,password : string);
var Msg : TMimeMess; // сообщение
    StringList : TStringList; // содержимое письма
    MIMEPart : TMimePart; // части сообщения (на будущее)
begin
  Msg := TMimeMess.Create; // создаем новое сообщение
 // IdealCharsets:=[CP1251];
 // Msg.Header.CharsetCode:=CP1251;  // Установим кодировку  заголовков
//{$IFNDEF CIL} //error URW778 ??? :-O
//, GB2312, EUC_KR, ISO_2022_JP, EUC_TW  {$ENDIF}  ];
 
  StringList := TStringList.Create;
  try
    // Добавляем заголовки
    Msg.Header.Subject := Subject;// тема сообщения
    Msg.Header.From := From; // имя и адрес отправителя
    Msg.Header.ToList.Add(pTo); // имя и адрес получателя
    // создаем корневой элемент
    MIMEPart := Msg.AddPartMultipart('alternative', nil);
    if length(TextBody)=0 then
    // если формат HTML
      begin
        StringList.Text := HTMLBody;
        Msg.AddPartHTML(StringList, MIMEPart);
      end
    else
    // если текстовый формат
      begin
        StringList.Text := TextBody;
        Msg.AddPartText(StringList, MIMEPart);
      end;
    // Кодируем и отправляем
    Msg.EncodeMessage;
    // Отправляем.
    if smtpsend.SendToRaw(From,pTo,Host,Msg.Lines,login,password) then
        ShowMessage('Письмо отправлено')
    else
        ShowMessage('Письмо не отправлено');
 finally
   Msg.Free;
   StringList.Free;
 end;
end;
 
 
procedure TForm1.Button1Click(Sender: TObject);
begin
opendialog1.InitialDir:=getcurrentdir;
if opendialog1.Execute then
edit3.Text:=opendialog1.FileName;
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
close;
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
   SendMail('smpt.mail.ru:587',
        'tema testovogo pisma',
        'lemiriada870@mail.ru',
        'lemiriada870@mail.ru',
        'Soderzhimoe pisma v textovom formate',
        '',
        'lemiriada870', '1234567890i')
 
//SendMail('smtp.mail.ru:587', edit2.Text, edit1.Text, 'lemiriada870@mail.ru' , memo1.Lines.Text, '', edit3.Text, 'lemiriada870', '1234567890i');
end;
 
end.
Использовала разные порты. Не помогает. И dll кидала в корень с программой
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.05.2016, 21:50

Как настроить php.ini для отправки почты
при использование mail() не приходят письма на почту, никакой ошибки не выдает просто нету писем. раньше форма работала но когда поменял...

Как указать порт для отправки почты в PowerShell 2.0?
Приветствую! Как указать порт для отправки почты в powershell 2.0. В поздних версиях есть параметр -Port, а тут нет. Если можно, пример...

Как сделать форму для отправки почты и узнать мэил отправителя?
У меня возникла необходимость в добавлении на мою страничку ссылки 'Написать автору' при нажатии на которую откроется форма для ввота...

Как спрятать Indy SSL?
Как спрятать Indy SSL? Просто мне не удобно когда dll лежат в папке, мне бы их внедрить как-то, это возможно?

Код для отправки письма на мыло по ssl
помогите написать код для отправления письма по ssl на одну из почт(Yandex,Mail,Gmail,rambler)


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru