ВСЕ ЗАПИСИ

Статьи,заметки

Отправка почты на Delphi через внешний smtp с использованием SSL-авторизации

(16.04.2015) Обновил исходник, теперь в теме письма можно использовать кириллицу. Функция для перекодировки кириллицы, содержится во внешнем подключаемом модуле, его можно использовать и в других проектах для работы с email.

Не так давно, я обнаружил, что одна из моих программ, в которой среди прочего функционала, была также функция отправки почтовых уведомлений через smtp сервер mail.ru вдруг перестала работать. Сразу же подумал, что на mail.ru перешли на отправку писем через защищённое соединение, оказалось, - так и есть, также как это сделали ранее другие известные почтовые сервисы: yandex и rambler, что касается gmail, то там уже давно используется только SSL.

Сейчас почтовые сервисы, где используется обычное незащищённое соединение через 25-й порт, найти уже довольно трудно, qip.ru, например, кажется совсем умер, значит следует переписать своё ПО с учётом современных требований. В своих старых исходниках я использовал Indy 9, входящий в стандартную поставку Delphi 7, поэтому решения на Synapse здесь не рассматриваются.

SSL (Secure Sockets Layer) - криптографический протокол использующий асимметричную криптографию для аутентификации ключей обмена, звучит это как-то серьёзно и пугающе на первый взгляд :) но на самом деле всё это достаточно легко можно реализовать с помощью компонентов Indy.

Прежде всего для работы SSL требуются две библиотеки: libeay32.dll и ssleay32.dll. Скачать их можно отсюда Они должны находиться в папке со скомпиллированной программой. В рабочем примере, который приводится здесь, я использовал архив indy_openssl096b.zip скачать у меня (только dll)

Итак, создаём проект, как обычно помещаем на форму компоненты IdSMTP и IdMessage. Кроме того, кидаем на форму ещё два компонента: IdSSLIOHandlerSocket , находится в Indy I/O Handlers, и IdSocksInfo, находится в Indy Misc.

Для данного примера, свойства и параметры компонентов в Object Inspector не трогаем, оставляем как есть по умолчанию, в обработчике процедуры нажатия кнопки по которой будет осуществляться соединение с сервером smtp и отправка email, (в приведённом случае письмо будет отослано с ящика login@mail.ru на адрес test@mail.ru) напишем код:

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';//реальный email с которого отправляется это письмо
idMessage1.Recipients.EMailAddresses := 'test@mail.ru';
idMessage1.Subject := 'TEST SSL';//тема письма, советую не использовать кириллицу здесь
idSmtp1.Connect(15000);
idSmtp1.Send(idMessage1);
idSmtp1.Disconnect;

Рабочий исходник вместе с необходимыми dll скачиваем здесь Проверена безотказная работа с четвёркой почтовых сервисов: gmail.com, mail.ru, yandex.ru, rambler.ru

Следует иметь ввиду, что нужно правильно задавать настройки smtp для каждого сервиса. Например, на mail.ru для ящика login@bk.ru нужно прописывать smtp.bk.ru.

В почте на рамблере также существуют разные домены, например test@rambler.ru, test@lenta.ru, но там во всех случаях в настройках smtp всегда указывается smtp.rambler.ru, зато в поле "логин" ставится полное название ящика, не просто 'test', а 'test@rambler.ru'.

А для того, чтобы программа могла работать через smtp.gmail.com, сначала следует зайти в настройки аккаунта google по адресу https://myaccount.google.com/ пункт Вход в аккаунт , и разрешить вход в аккаунт для непровереннх приложений (по умолчанию там стоит "заблокировано") Двухэтапную аутентификацию также следует выключить, если она была включена.

Заодно приведу здесь работающий код для современных версий Delphi. Участок кода, выделенный жирным шрифтом, отвечает за SSL авторизацию

Показать

Пример компиллировался в RAD Studio XE5, Indy 9 из стандартной поставки, для работы приложения необходимы dll из этого архива openssl-0.9.8r-i386-win32-rev2.zip

Добавлено: декабрь 2014

©Veterock




комментарии (8)



написал ThomasLycle
Hello. And Bye. Vghrufwiodjowifuegijefqolw
добавлено: 14.10.18 12:50
написал MelaniT
Вплоть до, наверное, 2015 года я не прочитал ни одной книжки, связанной с программированием. Всегда есть документация, статьи, Гугл, менторы и собственная голова. Иногда, конечно, для ликвидации безграмотности по определённой конкретной теме не помешает и книжка. Но это не для новичка.
добавлено: 22.06.18 17:23
написал Anna
Спасибо огромное автору!!
добавлено: 22.05.18 03:33
написал Borisillum
{Звезды в банке. Интервью ооо газпром энергохолдинг, кредит под залог.. |Нецелевой кредит под залог раскрытие информации о банке как о под залог недвижимости;.. |Справочная информация о банке: кредит под залог недвижимости газпром и 10,19%.. |Может ли частное #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] оформить займ под залог недвижимости?? взяла кредит в банке и.. |Потребительский кредит в банке газпром. #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] залог недвижимости. Кострома кредит.. |Как пенсионеру взять кредит в банке особенности занимаем.ру. Одним #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] первых банков.. |Кредит наличными под залог недвижимости #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] хоум кредит банке! в долг кострома.. |Кредит наличными на любые цели, оформление через в интернетбанке или.. |Возмите кредит в #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] под залог своей газпром и в кредит недвижимости.. |Ваш браузер устарел. Сайт #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] некорректно отображаться.. |Кредит под залог объектов недвижимости; кредит кредит в данном #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] залог в виде.. |Нецелевой кредит под залог в другом банке есть залог недвижимости; в.. |Максимальная сумма кредита в банке втб 24 ниже вы можете рассчитать собственный кредит.. |Залог залог имеющейся недвижимости, #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] в росбанке ипотека в банке.. |Ни в альфабанке, ни в русском если вы брали кредит в под залог недвижимости и.. |Как получить кредит в банке; ведь газпром является ссуды #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] залог недвижимости в.. |Заявка на кредит онлайн в #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] ипотека кредит под залог автокредит.. |Потребительский кредит на одобренной суммы кредита и наличия зарплатного #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] в банке.. |Кредит под залог имеющегося в банке #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] нам современный рынок недвижимости.. |Кредиты в банке газпромбанк (кредит #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] кредитование под залог имеющейся в.. |Процентная ставка от 13,9% #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] ниже на 1
добавлено: 09.05.18 01:31
написал Leonidpalia
{Кто может досрочно #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] кредит куплен москомприватбанк, оформить кредитную.. |Беспроцентный кредит до 55 вы можете оформить кредитку #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] в форму свои данные и.. |Условия москоприватбанка #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] предоставлению вкладов, кредитов и прочих услуг: процентные.. |Москомприватбанк начал распространять подать онлайн заявку #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] кредит оформить.. |Заявка в банк ренессанс кредит наличными в день #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] От 30 000 до 1 000 000 рублей.. |Здесь можно оформить заявку и взять кредит в приват банке онлайн #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] 5 минут.. |Имею кредитную #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] москомприватбанк с открытым кредитным лимитом. Пользовался.. |Москомприватбанк губкин кредит где взять кредит деньгами с нормальным процентом?.. |Кредит для бизнеса: оформить заявку на сайте! до 30 000 000 рублей. Срок #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] 5 лет. Рассмотрение 7.. |Ооо москомприватбанконлайн 115446, кредит наличными оформить #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] заявку на кредит.. |Оформить кредит наличными #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] в любом отделении, заполнив анкету онлайн.. |Выгодно получить #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] можно по интернету. Нужно оформить онлайнзаявку на кредит.. |На кредиты.ру можно взять кредит, займ, оформить кредитную, дебетовую карту. Полисы каско.. |Помогу оформить кредит в самаре, бизнес и услуги финансовые услуги партнерство на.. |Тарифы кредитной карты платиновая карта от бинбанк кк (москомприватбанк): процентные.. |Отзывы клиентов о банковской карте платиновая карта от банка бинбанк кредитные карты.. |Информация о зао москомприватбанк оформить кредит #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] на лояльных.. |Если вы желаете оформить такую возможность #file_links<>C:\Users\xrum\Documents\xrum\DorsPostsLinks.txt",1,N] вы ищете бизнескредит.. |Москомприватбанк всего 3 поля позволяющие оформить кредит наличными без справок.. |Хочу оформить кредитную карту москомприватбанк кредит онлайн часто владельцев.. |Где взять са
добавлено: 04.05.18 13:28
написал electroniksiauaup
Хорошего дня! Утром нашел в поисковике по запросу "разработка радиоэлектронных устройств фриланс" prom-electric.ru/articles/2/26/ Всем советую! Пока!
добавлено: 29.04.18 16:37
написал LouisAnype
Доброго дня! Предлагаем рассмотреть предложение: Отправка вашего сообщения в более чем 1 000 000 форм обратной связи России только до 5 мая - 4000 р Ваше сообщение увидят администраторы сайтов, менеджеры и руководители! Отличная реклама Ваших товаров и услуг! Гарантии и отзывы. Контакты: 2018form @inbox.ru(убрать пробелы) Telegram: @form2018 Skype: 2018form
добавлено: 27.04.18 09:59
написал Iakinfjes
Толстые девушки. Частные фото с голыми толстыми и пышными девушками и женщинами. Не на то, что у голых толстых баб огромные висячие сиськи, крупные бедра толстые полные ляжки и задницы, эти женщины смо.. Смотри порно фото с девушками в колготках. Их не обязательно снимать, что бы заняться.. Огромный архив порно фото. Брюнетки у одних большие аппетитные задницы.. HNU9ujujh
добавлено: 26.04.18 09:05
Имя

Сообщение

введите защитный код


Обновить

Powered by ©Veterock Studio 2013