[Delphi] Socket error #0

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by Fs^, 31 Jul 2013.

  1. Fs^

    Fs^ New Member

    Joined:
    11 Jul 2012
    Messages:
    2
    Likes Received:
    0
    Reputations:
    0
    Доброго времени суток. Столкнулся с проблемой, никак не могу понять, с чем это связано. На форуме ничего вразумительного не нашел, гугль тоже не особо прояснил.
    Дело в том, что при попытке отправить почту выбивает Socket error #0. Фаерволы\антивирусы\прочее отключено, смтп сервер яндекса пингуется. Может быть поможет кто..

    Собственно, код отправки:

    Code:
    
    procedure TMainForm.SendClick(Sender: TObject);
    begin
    idSmtp.Host:='smtp.yandex.ru';
    idSmtp.UserName:='***';
    idSmtp.Password :='***';
    idSmtp.AuthenticationType:=atLogin;
    
    if not idSmtp.Connected then idSmtp.Connect;
    idMessage.Body.Add('Login = ' +Log.Text+ 'Password - ' +Pass.text);
    idMessage.From.Address:='***';
    idMessage.Subject:='***';
    idMessage.Recipients.EMailAddresses:='***';
    
    idSmtp.Send(idMessage);
    idSmtp.Disconnect;
    end;
    
    
     
  2. tux

    tux Elder - Старейшина

    Joined:
    26 Mar 2009
    Messages:
    423
    Likes Received:
    231
    Reputations:
    67
    Я на делфи не пишу, однако простая строка "if not idSmtp.Connected then idSmtp.Connect;" смущает.
    В принципе все правильно, однако кто сказал, что Connect отработает правильно? Если, к примеру логин/пароль окажется неправильным, то и коннекта не будет. Соответственно и все, что ниже будет невалидным. И улетит по исключению.