Błąd uwierzytelniania (SASL) przy wysyłaniu maila przy pomocy konta pocztowego na Interii.... (INDY 10.1.5, D 10.4)

0

Przy pomocy pakietu Indy (v 10.1.5) bezskutecznie próbuję wysłać maila przy pomocy konta pocztowego na Interii.
Mam problem z uwierzytelnianiem i otrzymuję błąd : Error: authentication failed:

Podejrzewam, ale nie mam pewności, że do uwierzytelniania Interia wymaga mechanizmu SASL nie obsługiwanego przez Indy, np. OAUTHxxx
Poniżej testowy kod, który bez problemu nawiązuję połącznie i wysyła maile z Gmail i Onet ale nie działa z Interią.
Może ktoś coś podpowie

procedure TForm2.Button2Click(Sender: TObject);
begin
  try
   
    IdSMTP1.Disconnect;

    // ustawinie parametrów SSL
    IdSSLIOHandlerSocketOpenSSL1.SSLOptions.Method := sslvTLSv1;
    IdSMTP1.IOHandler := IdSSLIOHandlerSocketOpenSSL1;

    // powiązanie komponentów IdSASLxxxx z UserProvider
    IdSASLCRAMMD51.UserPassProvider := IdUserPassProvider1;
    IdSASLPlain1.UserPassProvider := IdUserPassProvider1;
    IdSASLSKey1.UserPassProvider := IdUserPassProvider1;
    IdSASLCRAMSHA11.UserPassProvider := IdUserPassProvider1;
    IdSASLOTP1.UserPassProvider := IdUserPassProvider1;
    IdSASLDigest1.UserPassProvider := IdUserPassProvider1;
    IdSASLDigest1.UserPassProvider := IdUserPassProvider1;

    // powiązanie komponentów IdSASLxxxx z klientem pocztowym IDSMTP
    IdSMTP1.SASLMechanisms.Clear;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLCRAMMD51;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLPlain1;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLSKey1;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLCRAMSHA11;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLOTP1;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLDigest1;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLDigest1;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLAnonymous1;
    IdSMTP1.SASLMechanisms.Add.sasl := IdSASLExternal1;

    // hasło i login
    self.IdUserPassProvider1.Username := trim(self.edtUser.Text);  // <- użytkownik 
    self.IdUserPassProvider1.Password := trim(self.edtPasswd.Text); // <- hasło 
    
    // poostałe parametry IDSMTP
    IdSMTP1.Host := 'poczta.interia.pl';
    IdSMTP1.AuthType := satSASL;
    IdSMTP1.UseEhlo := true;
    IdSMTP1.port := 465;
    IdSMTP1.UseTLS := utUseExplicitTLS;
    IdSMTP1.ConnectTimeout := 2000;
    if not IdSMTP1.Connected then
      IdSMTP1.Connect;

    // treść wiadomości 
    IdMessage1.Sender.Address := trim(self.edtUser.Text);
    IdMessage1.From.Name := 'TEST A';
    IdMessage1.From.Address := trim(self.edtUser.Text);
    IdMessage1.Subject := 'TEST B';
    IdMessage1.Recipients.EMailAddresses := trim(self.edtRecipient.Text);

    IdSMTP1.Send(IdMessage1); // <====  TUTAJ WYJĄTEK:   "Error: authentication failed:"

    self.Memo1.Lines.Add('OK ..');

  except
    on e: exception do
    begin
      self.Memo1.Lines.Add('Error');
      self.Memo1.Lines.Add(e.Message);
    end;
  end;
end;

Do celów testowych wszystkie niezbędne komponenty z pakietu Indy umieściłem na formie, ale docelowo chciał bym utworzyć klasę obsługującą uwierzytelnienie SASL i dziedziczącą z TIdSmtp

0

a nie powinienes uzyc poru 587 albo 993 ?

0

@chomikowski:
Wysyłam protokołem SMTP, próbowałem 587, efekt ten sam.
Port 993 obsługuje IMAP... ale dla formalności sprawdzę

Edt...
Sprawdziłem, nie działa. Do obsługi IMAP jest klasa TIdImap4

1

To nie wiem masz ta w kodzie dwa razy to samo

IdSMTP1.SASLMechanisms.Add.sasl := IdSASLDigest1;
   IdSMTP1.SASLMechanisms.Add.sasl := IdSASLDigest1;

moze tu powinno byc cos innego ale przegapiles

0

@chomikowski:
masz rację ,mój błąd
poprawiłem na

IdSMTP1.SASLMechanisms.Add.sasl := idSASLlogin1;

teraz mam błąd: Error: authentication failed: UGFzc3dvcmQ6
czyli po zdekodowaniu komunikatu o błędzie z base64 na string mam : Password:
hasło którego używam jest prawidłowe

3

Możesz tak kombinować 3 dni i nic nie wymyślisz jeżeli na Interii w ustawieniach Poczta -> Parametry nie zaznaczysz "Korzystam z programu pocztowego" po włączeniu tej opcji powinna śmigać nawet bez SASL.

0

@kAzek:
dzięki , działa :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1