Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Работа с сетью в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 31.10.2014, 16:09   #1
hapera2
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 65
По умолчанию Проблема с отправкой писем и подключением (SSL)

Ребят, замучался уже.
Всё вроде правильно... Почему не конектит? (SOCKET ERROR 10060) - connection timed out

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
IdMessage1 := TIdMessage.Create;
IdMessage1.From.Address:='правильныйадрес1@yandex.ru';
IdMessage1.Recipients.EMailAddresses:='приавильныйадрес@yandex.ru';
IdMessage1.Subject:= UTF8Encode('123');
IdMessage1.Date:= now;

{настройка компонентов перед отправкой}
IdSMTP := TIdSMTP.Create(nil);

IdSMTP.Host:='smtp.yandex.ru';
IdSMTP.Port:=465; // обычно при использование ssl 495, 587 или стандартный 25
IdSMTP.Username:='правильныйадрес1';
IdSMTP.Password:='правильныйпароль';
IdSMTP.AuthType:=satDefault;

{это необходимо использовать для SSL}
IdSSLIOHandlerSocketOpenSSL:= TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdSSLIOHandlerSocketOpenSSL.Destination := IdSMTP.Host+':'+IntToStr(IdSMTP.Port);
IdSSLIOHandlerSocketOpenSSL.Host := IdSMTP.Host;
IdSSLIOHandlerSocketOpenSSL.Port := IdSMTP.Port;
IdSSLIOHandlerSocketOpenSSL.DefaultPort := 0;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvTLSv1;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode := sslmUnassigned;

IdSMTP.IOHandler := IdSSLIOHandlerSocketOpenSSL;
IdSMTP.UseTLS := utUseExplicitTLS;

{отправляем письмо}
IdSMTP.Connect();
  if idsmtp.Connected then
  showmessage('1111');
IdSMTP.Send(IdMessage1);
Application.ProcessMessages;
IdSMTP.Disconnect;
idMessage1.Free;
IdSSLIOHandlerSocketOpenSSL.Free;
idSMTP.Free;
end;
hapera2 вне форума Ответить с цитированием
Старый 31.10.2014, 16:23   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

порт правильный?
Параметры ssl верные?
Человек_Борща вне форума Ответить с цитированием
Старый 31.10.2014, 17:20   #3
hapera2
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 65
По умолчанию

Цитата:
Исходящая почта
адрес почтового сервера — smtp.yandex.ru;
защита соединения — SSL;
порт — 465.
На счет параметров не уверен потому, что в принципе не знаю где найти информации о параметров SSL для подключения к yandex SMTP
hapera2 вне форума Ответить с цитированием
Старый 01.11.2014, 13:22   #4
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Интересует та же тема. Автор, если найдешь решение - отпишись, пожалуйста
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 01.11.2014, 13:58   #5
hapera2
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 65
По умолчанию

Сейчас ситуация почему то изменилась. Теперь проходит подключение, т.е. выскакивает Showmessage('1111'); Но за ней ошибка: SSL is not available on this server... Есть идеи?
hapera2 вне форума Ответить с цитированием
Старый 01.11.2014, 14:58   #6
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

SSL не найден на сервере

В настройках аккаунта разрешено использовать почтовые программы?
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 01.11.2014, 15:30   #7
hapera2
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 65
По умолчанию

Мучаюсь с этим шифрование уже неделю. Настроения никакого нету двигаться дальше из-за этой херни. По сути там нет ничего сложного, но не получается, это и выбешивает.
Поменял параметр UseTls
Цитата:
IdSMTP.UseTLS := utUseImplicitTLS;
Теперь пишет could not load ssl library...
Загуглил, люди пишут надо установить две библиотеки libeay32.dll ssleay32.dll.
Пол дня качал разные версии этих файлов и кидал к экзэшнику, в папку с проектом и в корень винды... Не работает.

Причем есть такая ситуация: Была старая винда, был Delphi XE2, прога отправляла письма с SSL, все было настроено и работало, пользуюсь до сих пор той программой, а вот исходник не получается перекомпилить и запустить на новой винде. Только тут стоит уже XE7. Печаль и грусть.

Последний раз редактировалось hapera2; 01.11.2014 в 15:33.
hapera2 вне форума Ответить с цитированием
Старый 01.11.2014, 16:12   #8
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

hapera2, почитай соседнюю тему. Я тоже никак не могу отправить письмо с программы, сделанной на Делфи 7. Вот сейчас поставил последнюю версию Инди, буду тоже мучиться. Решение по любому надо найти, у меня выхода нет
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 01.11.2014, 16:22   #9
hapera2
Пользователь
 
Регистрация: 12.11.2013
Сообщений: 65
По умолчанию

Наконец заработало. Причем я оказывается всё правильно делал. Всё это причуды Delphi XE7. Сейчас поставил XE2. Использовав этот код отправил письмо:
Код:
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs,StdCtrls, IdMessage, IdIOHandler, IdIOHandlerSocket,
  IdIOHandlerStack, IdSSL, IdSSLOpenSSL, IdBaseComponent, IdComponent,
  IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdMessageClient,
  IdIMAP4, IdSMTPBase, IdPOP3, idsmtp;


type
  TForm1 = class(TForm)
    Button1: TButton;
    IdSMTP: TIdSMTP;
    IdMessage1: TIdMessage;
    IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
IdMessage1 := TIdMessage.Create;
IdMessage1.From.Address:='адрес@yandex.ru';
IdMessage1.Recipients.EMailAddresses:='адрес2@yandex.ru';
IdMessage1.Subject:= UTF8Encode('123');
IdMessage1.Date:= now;

{настройка компонентов перед отправкой}
IdSMTP := TIdSMTP.Create(nil);

IdSMTP.Host:='smtp.yandex.ru';
IdSMTP.Port:=465; // обычно при использование ssl 495, 587 или стандартный 25
IdSMTP.Username:='адрес';
IdSMTP.Password:='пароль';
IdSMTP.AuthType:=satDefault;

{это необходимо использовать для SSL}
IdSSLIOHandlerSocketOpenSSL:= TIdSSLIOHandlerSocketOpenSSL.Create(nil);
IdSSLIOHandlerSocketOpenSSL.Destination := IdSMTP.Host+':'+IntToStr(IdSMTP.Port);
IdSSLIOHandlerSocketOpenSSL.Host := IdSMTP.Host;
IdSSLIOHandlerSocketOpenSSL.Port := IdSMTP.Port;
IdSSLIOHandlerSocketOpenSSL.DefaultPort := 0;
IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvTLSv1;
//IdSSLIOHandlerSocketOpenSSL.SSLOptions.Method := sslvSSLv2;

IdSSLIOHandlerSocketOpenSSL.SSLOptions.Mode := sslmUnassigned;

IdSMTP.IOHandler := IdSSLIOHandlerSocketOpenSSL;
IdSMTP.UseTLS := utUseImplicitTLS;

{отправляем письмо}
IdSMTP.Connect();
  if idsmtp.Connected then
  showmessage('1111');
IdSMTP.Send(IdMessage1);
Application.ProcessMessages;
IdSMTP.Disconnect;
idMessage1.Free;
IdSSLIOHandlerSocketOpenSSL.Free;
idSMTP.Free;
end;

end.
hapera2 вне форума Ответить с цитированием
Старый 01.11.2014, 16:57   #10
Vapaamies
Ваш К. О.
Участник клуба
 
Аватар для Vapaamies
 
Регистрация: 26.12.2012
Сообщений: 1,776
По умолчанию

Разрядность собираемого приложения не менялась при переходе от XE2 к XE7?
Vapaamies вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отправкой почты WinMen Общие вопросы Delphi 12 28.12.2010 13:00
Проблема с отправкой почты. DeDoK Работа с сетью в Delphi 0 12.12.2010 19:05
Проблема со скачиванием писем с почтового сервиса gmail.comgmail, indy компоненты, ssl протокол. dlauser Работа с сетью в Delphi 0 29.11.2010 08:52
Проблемы с Joomla отправкой писем Rusl92 WordPress и другие CMS 4 24.10.2010 03:02
Проблема с отправкой почты Genesis PHP 2 18.05.2009 15:35