1. Liebe Forumsgemeinde,

    aufgrund der Bestimmungen, die sich aus der DSGVO ergeben, müssten umfangreiche Anpassungen am Forum vorgenommen werden, die sich für uns nicht wirtschaftlich abbilden lassen. Daher haben wir uns entschlossen, das Forum in seiner aktuellen Form zu archivieren und online bereit zu stellen, jedoch keine Neuanmeldungen oder neuen Kommentare mehr zuzulassen. So ist sichergestellt, dass das gesammelte Wissen nicht verloren geht, und wir die Seite dennoch DSGVO-konform zur Verfügung stellen können.
    Dies wird in den nächsten Tagen umgesetzt.

    Ich danke allen, die sich in den letzten Jahren für Hilfesuchende und auch für das Forum selbst engagiert haben. Ich bin weiterhin für euch erreichbar unter tti(bei)pcwelt.de.
    Dismiss Notice

Delphi - E-Mail-Versand

Discussion in 'Programmieren' started by Chickenmarkus, May 31, 2007.

Thread Status:
Not open for further replies.
  1. Hallo!!!
    Ich möchte mir mal so zu Übungszwecken einen kleinen E-Mail-Clienten basteln. Allerdings muss der nur Sachen verschicken.
    Ich hab ich im Internet schon ziemlich danach umgeguckt, allerdings finde ich einerseits verschiedene Befehle und andererseit, woran es bis jetzt immer gescheitert ist, Sachen, die ich nicht verstehen. Wenn ich schon ein Programm schreibe, dann möchte ich auch wissen, wie's funktioniert.
    Delphi soll also eine E-Mail über SMTP verschicken. Dabei steht im folgendes zur Verfügung (das mit * könnte evtl. weggelassen werden):
    Absendername (was beim Empfänger vor der E-Mail-Adressse steht)*, Benutzername/E-Mailadresse, Passwort, Empfänger-E-Mail-Adresse, Betreff, Nachricht, Dateianhang*
    Außerdem müsste evtl. vor noch schnell ein Connect und Disconnect über POP3 stattfinden, da ja viel SMTP-after-POP3 verwenden.
    Könnte mir dazu jmd. die Befehle mit Erklärungen oder einen Link dazu posten?

    Tschüss Markus

    PS: Noch schnell zwei kleine Dinge: Wie kann ich in einer MessageBox (ShowMessage()) eine neue Zeile/Leerzeile machen (irgendwie mit '#13', oder)? Außerdem würde ich noch etwas benötigen, womit man einen Dateipfad suchen kann (das bekannte 'Durchsuche...", wo das Fenster der Festplatten etc. aufgeht).
     
  2. Kann mir denn niemand dazu etwas sagen? :heul:
     
  3. Falcon37

    Falcon37 Ganzes Gigabyte

  4. Hat mir sehr weitergeholfen. Allerdings kann mein Delphi7 damit noch nix anfangen.

    Wo finde ich das TNMSMTP von FastNet tools zum Download? Bei Goole hab ich's nicht gefunden.
     
  5. Falcon37

    Falcon37 Ganzes Gigabyte

    Also ich habe bei Google einiges gefunden. ;)

    Das hier ist wohl die entscheidende Site: http://entwickler-forum.de/showthread.php?t=25036

    Mfg
     
  6. Falcon37

    Falcon37 Ganzes Gigabyte

  7. Ich versteh da wirklich fast nur :bahnhof: .

    Da werden meistens nur die Probleme der einzelnen Server angesprochen, die verwenden irgendwie andere Befehle und zum Schluss ist der immer noch nicht zufrieden.

    Was meinst du da jetzt genau?

    EDIT: Hab' jetzt erst deinen ersten Beitrag gelesen. Selbst nach abändern in TidSMTP funktioniert's nicht.
     
  8. Falcon37

    Falcon37 Ganzes Gigabyte

    So schwer ist das doch nicht.

    Die Komponente heißt angeblich TIdSMTP was ich aber wegen fehlender Version 7 nicht bestätigen kann.
    Zum anderen ist das hier Code, basierend auf der genannten Komponente:

    Code:
    procedure Button1Click(Sender: TObject);  
     
     
    var  
       SMTP: TIdSMTP;  
       Nachricht: TIdMessage;  
     
     
    begin  
     
     
       Nachricht := TIDMessage.Create(nil);  
       SMTP := TidSMTP.create(nil);  
     
     
       try  
          try  
             Nachricht.Subject := 'testmail 3';  
             Nachricht.From.Address := 'FromAddress@firma.de';  
              Nachricht.Recipients.Add.Address := 'ToAddress@firma.net';  
             Nachricht.Sender.Address := 'SemderAddress@firma.de';  
     
     
             Nachricht.Body.Clear;  
             Nachricht.Body.Add('Body erste Zeile');  
             Nachricht.Body.Add('Body 2 Zeile');  
             Nachricht.Body.Add('Body 3 Zeile');  
             Nachricht.Body.Add('Body 4 Zeile');  
             Nachricht.Body.Add('Body 5 Zeile');  
     
     
             SMTP.Host := 'smtp.mailserver.de';  
             SMTP.Port := 25;  
             SMTP.Username := 'HierKommtDerUsername';  
             SMTP.Password := 'Passwort';  
     
     
             SMTP.Connect;  
             SMTP.Send(Nachricht);  
     
     
          except  
             on E: Exception do  
             begin  
                ShowMessage(E.Message);  
             end;  
          end;  
     
     
       finally  
          SMTP.Disconnect;  
          smtp.Free;  
          Nachricht.Free;  
       end;  
     
    end; 
    
     
  9. Ist ja jetzt teilweise noch ein anderer Code als auf der aller ersten Seite von dir stand.

    Kann den aber morgen erst ausprobieren. Bekomme gleich Besuch zum Pokern.
     
  10. Ich hab das jetzt so gemacht wie du. Allerdings gibt's da immer noch einige Fehlermeldungen. Ich schreib die einfach mal fett dahinter:

    Code:
    
    procedure TBomber.SendButtonClick(Sender: TObject);
    var SMTP: TIdSMTP;  [B]Undefinierter Bezeichner[/B]
        Nachricht: TIdMessage; [B]Undefinierter Bezeichner[/B]
    begin
    
    Nachricht := TIDMessage.Create(nil); [B]Operator oder Semikolon fehtl[/B]
    SMTP := TidSMTP.create(nil); [B]Operator oder Semikolon fehtl[/B]
        try
          try  
            Nachricht.Subject := SubjectLine.Text; [B]Operator oder Semikolon fehlt[/B]
            Nachricht.From.Address := SenderAddress.Text; [B]Operator oder Semikolon fehlt[/B]
            Nachricht.Recipients.Add.Address := Address.Text; [B]Operator oder Semikolon fehlt[/B]
            Nachricht.Sender.Address := SenderAddress.Text; [B]Operator oder Semikolon fehlt[/B]
            Nachricht.Body.Clear; [B]Operator oder Semikolon fehlt[/B]
            Nachricht.Body.Add(Letter.Text); [B]Operator oder Semikolon fehlt[/B]
            Nachricht.Body.Add('----------------------------------------------'); [B]Operator oder Semikolon fehtl[/B]
            Nachricht.Body.Add('This E-Mail was created by Simple E-Mail Client'); [B]Operator oder Semikolon fehlt[/B]
    
            SMTP.Host := ServerAddress.Text; [B]Operator oder Semikolon fehlt[/B]
            SMTP.Port := 25; [B]Operator oder Semikolon fehlt[/B]
            SMTP.Username := UserName.Text; [B]Operator oder Semikolon fehlt[/B]
            If SMTPAuthentication.Checked=True Then
              SMTP.Password := OwnersPassword.Text; [B]Operator oder Semikolon fehlt --- Inkompatible Typen: "TLabelEdit" und "TCaption"[/B]
    
            SMTP.Connect; [B]Operator oder Semikolon fehlt[/B]
            SMTP.Send(Nachricht); [B]Operator oder Semikolon fehlt[/B]
    
          except  
            on E: Exception do
              begin
              ShowMessage(E.Message);
              end;
            end;
          finally
            SMTP.Disconnect; [B]Operator oder Semikolon fehlt[/B]
            smtp.Free; [B]Operator oder Semikolon fehlt[/B]
            Nachricht.Free; [B]Operator oder Semikolon fehlt[/B]
            end;
          end;
    
    
    Das ganze "Operator oder Semikolon fehlt" dürfte wohl an den ersten "Undefinierter Bezeichner" liegen.

    Langsam verzweifel ich an der Sache. Aber trotzdem Danke dass du so tapfer durchhälst. :bet:

    EDIT: Aus "fehtl" mal hoffentlich überall "fehlt" gemacht.
     
  11. Falcon37

    Falcon37 Ganzes Gigabyte

    Du hast die Komponente ja noch gar nicht integriert.
    Mach das erst mal.

    Mfg
     
  12. Jetz aber wirklich: :bahnhof:

    Wie soll ich die integrieren? Mehr als die im Code zu schreiben geht ja fast nicht, oder etwa doch :confused: ?
     
  13. Falcon37

    Falcon37 Ganzes Gigabyte

    Von der Komponenten-Palette mußt du die benötigte Komponente auf dein Formular ziehen.

    Wie lange beschäftigst du dich schon mit Delphi?
     
  14. Aso. Hab jetzt aus Indy-Clients TIdSMTP draufgezogen. trotzdem zeigt's mir jetzt noch die Fehler ab TidMessage an. Muss da auch noch was drauf???

    PS Es würde auch noch TidSMTPServer geben.
     
  15. Ich bin heilfroh, jetzt läuft's schon fast.
    Delphi mach ich vllt. seit 'nem Monat. Finds nur übelst komisch, dass unser Lehrer nicht mal die Grundlagen erklärt hat. Sind das noch Grundlagen?

    Jetzt sagt's mir nur noch, wenn ich was senden will das ein Fehler vorliegt: "Submission from dynamic IP requires authentcation".
    Nun weiß ich nicht genau, was es damit meint, da es ja einmal die SMTP-Authentifikation gibt (bräuchte ich dann auch evtl. noch, da es mir bei "SMTP.AuthenticationType:= atLogIn" auch ein Fehler anzeigt) und dann noch SMTP-after-POP3. Dafür hab ich bis jetzt folgenden Code:
    Code:
     
          IDPOP31.Host:= ServerAddress.Text;
          IDPOP31.Username := UserName.Text;
          IDPop31.Password := OwnersPassword.Text;
          IDPOP31.Connect;
          IDPOP31.Disconnect;
    
    Allerdings kommt damit immer noch der gleiche Fehler.
     
  16. *push*

    Bitte nicht einfach ignorieren. Könnte man das nicht noch zum laufen bekommen?
     
Thread Status:
Not open for further replies.

Share This Page