Announcement

Collapse
No announcement yet.

Indy TIdSMTP Connect Fehler

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Indy TIdSMTP Connect Fehler

    Mein Compiler: Delphi 7 Enterprise
    OS: Windows XP Prof.

    Für ein größeres Datenbankprogramm will ich ein Serienbrief
    E-Mail Versand Modul erstellen. Der Code compiliert, alles geht bis auf die Verbindung zum E-Mail Server. Wie immer, wenn ein komplexer Fehler vorliegt, habe ich das Programm dann auf das Mindestmass reduziert. Es blieb ein Programm zum Versenden einer einzelnen Mail übrig, das einwandfrei funktionierte. Sobald ich es in das größere Program einband, ging nichts
    mehr. Daraufhin hab ich es auf die reine Verbindungsfunktion reduziert:

    Ich teste die Verbindung mit

    type
    TMailerForm = class(TForm)
    SMTP: TIdSMTP;
    .......

    procedure TMailerForm.bbnTestConnectionClick(Sender: TObject);
    var
    rslt: boolean;
    begin
    rslt := true;

    //setup SMTP
    SMTP.Host := ledHost.Text; // z.B.: 'smtp.1und1.com'
    SMTP.Username := ledUserName.Text; // z.B.: 'abcd-info'
    SMTP.Password := ledPassword.Text; // z.B.: 'Simpson'
    SMTP.Port := 25;

    //test connection
    try
    try
    SMTP.Connect(1000);
    SMTP.Authenticate;
    except on E:Exception do begin
    ShowMessage(E.Message + #10#13 + 'Keine Verbindung');
    rslt := false;
    end;
    end;
    finally
    if SMTP.Connected then
    SMTP.Disconnect;
    end;
    if rslt then
    lblFeedback.Caption := 'OK'
    else
    lblFeedback.Caption := 'ERROR';
    end;{bbnTestConnectionClick}

    Dies funktioniert einwandfrei.
    Packe ich aber die Testroutine in eine Funktion

    function TMailerForm.TestConnection: boolean;
    begin
    result := true;

    //setup SMTP
    SMTP.Host := ledHost.Text;
    SMTP.Username := ledUserName.Text;
    SMTP.Password := ledPassword.Text;
    SMTP.Port := 25;

    //test connection
    try
    try
    SMTP.Connect(1000);
    SMTP.Authenticate;
    except on E:Exception do begin
    SHowMessage( E.Message + #10#13 + 'Keine Verbindung');
    result := false;
    end;
    end;
    finally
    if SMTP.Connected then
    SMTP.Disconnect;
    end;
    end;

    und rufe sie auf mit:

    procedure TMailerForm.btnTest2Click(Sender: TObject);
    var
    rslt: boolean;
    begin
    rslt := TestConnection;
    if rslt then
    lblFeedback.Caption := 'Nicht verbunden'
    else
    lblFeedback.Caption := 'Positiv';
    end;

    so erhalte ich nur Fehler.
    Was ist der Grund, was mache ich falsch?

    Noch eine Frage:
    Welche Version (Versionsnummer) von Indy hat Borland in Delhi 7 eingebunden?

    BestenDank im Voraus für jede Hilfe.

  • #2
    Grosse Blamage!
    Alles funktioniert, lediglich die letzte Abfrage war verdreht.

    Bitte an den Moderator:
    Diesen Beitrag komplett löschen. Danke

    Comment

    Working...
    X