AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Delphi Wie TurboPower InternetPro FTP in eigener Unit/Komponente ?
Thema durchsuchen
Ansicht
Themen-Optionen

Wie TurboPower InternetPro FTP in eigener Unit/Komponente ?

Ein Thema von kalmi01 · begonnen am 25. Aug 2005 · letzter Beitrag vom 25. Aug 2005
Antwort Antwort
kalmi01
(Gast)

n/a Beiträge
 
#1

Wie TurboPower InternetPro FTP in eigener Unit/Komponente ?

  Alt 25. Aug 2005, 11:20
Hallo,
ich hätte da gern mal ein Problem.

Ich verwende TurboPower InternetPro.
Wenn ich die FTP-Komponente auf eine Form platziere und im Code dann die Konfiguration einbaue funktioniert alles, wie es soll.
Bastel ich mir eine eigene Komponente, mit allen "uses" wie beim Form und der selben Konfiguration, geht leider nichts mehr.
Der Debugger hilft auch nicht wirklich weiter, da es keinen Fehler gibt.

Delphi-Quellcode:
  interface
    uses
      SysUtils, Classes, IpMsg, IpSock, IpUtils, IpSmtp;

    function Send_Mail(MailHost, Absender, Empfaenger, Betreff, MailText, Anhang : string) : boolean;

  implementation
///////////////////////////////////////////////////////////////////////////////////////////////////
// public
///////////////////////////////////////////////////////////////////////////////////////////////////
    function Send_Mail;
      var
        SmtpClient : TIpSmtpClient;
        Disclaimer : TStringList;
        i : integer;
      begin
        //setup SMTP
        SmtpClient := TIpSmtpClient.Create(nil);
        SmtpClient.Message.NewMessage;
        SmtpClient.Message.MailTo.Add(Empfaenger);
        SmtpClient.Message.From := Absender;
        SmtpClient.Message.Subject := Betreff;
    SmtpClient.Message.ContentType := 'multipart';
    SmtpClient.Message.ContentSubtype := 'mixed';

        Disclaimer := TStringList.Create;
        Disclaimer.Add(MailText);
        SmtpClient.Message.EncodeBodyStrings(Disclaimer, '');
        Disclaimer.Free;

       SmtpClient.AttachmentList.Add(Anhang);

        //send mail
        SmtpClient.SendMail(MailHost, false); // <<<<<<<<< hier wird nicht Connected
        for i := 0 to 999
        do begin
             Sleep(100);
             Result := SmtpClient.Connected;
             if Result
             then begin
                    SmtpClient.Quit;
                    Break;
                  end
             else WriteLn(SmtpClient.StateToStr(SmtpClient.State));
           end;
        if not Result
        then WriteLn(SmtpClient.StateToStr(SmtpClient.State));
      end;
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Wie TurboPower InternetPro FTP in eigener Komponente ?

  Alt 25. Aug 2005, 11:25
Manche Controls müssen auf eine Fenster plaziert werden damit sie funktionieren, da sie sich auf Windows-Messages verlassen.
Erzeug mal eine TForm und plaziere es dort drauf ohne das Formular sichtbar zu machen.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#3

Re: Wie TurboPower InternetPro FTP in eigener Komponente ?

  Alt 25. Aug 2005, 11:37
Hallo Bernhard,

[heul][flenn] ich will doch aber kein Form verwenden.

Wenn die Form unsichtbar ist funktioniert es genauso, wie bei einer Sichtbaren.

Mit den Indy's geht's, nur dummerweise mag ich die nicht so besonders, seit ich von 7 auf 9 upgedatet hatte und fast meine ganzen Projekte nicht mehr richtig funzten.
Also hab ich wieder auf 7 zurück gedreht und angefangen alles auf TurboPower umgestellt.
Bis auf dieses eine Teil geht auch alles prima.

  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

Re: Wie TurboPower InternetPro FTP in eigener Komponente ?

  Alt 25. Aug 2005, 11:40
Nur so als Frage: Wo ist die, im Titel angesprochene, Komponente ?

Entweder Titel oder Code ändern

Zur frage: Gibt es vielleicht irgendwo eine Prozedur Connect() oder so ?
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#5

Re: Wie TurboPower InternetPro FTP in eigener Unit/Komponent

  Alt 25. Aug 2005, 11:58
Hi jfheins,
nur so als Antwort: Jetzt zufrieden ?

Zitat:
Gibt es vielleicht irgendwo eine Prozedur Connect() oder so ?
Kennst Du "InternetPRO" ?

Connect wird von SmtpClient.SendMail() ausgeführt, bzw. genauer gesagt halt nicht.
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: Wie TurboPower InternetPro FTP in eigener Komponente ?

  Alt 25. Aug 2005, 12:34
Zitat von kalmi01:
[heul][flenn] ich will doch aber kein Form verwenden.
Und was stört dich daran? Der Endanwerder sieht doch das Formular nicht.

Zitat von kalmi01:
Wenn die Form unsichtbar ist funktioniert es genauso, wie bei einer Sichtbaren.
Evtl. HandleNeeded aufrufen das das Formular auf jedenfall ein Windows-Fensterhandle besitzt. Sonst ist Sichtbar/Unsichtbar egal.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
kalmi01
(Gast)

n/a Beiträge
 
#7

Re: Wie TurboPower InternetPro FTP in eigener Unit/Komponent

  Alt 25. Aug 2005, 15:01
So gehts.

Delphi-Quellcode:
    function Send_Mail;
      var
        MimePart : TIpMimeEntity;
        SmtpClient : TIpSmtpClient;
        memMessage : TStringList;
        i : integer;
      begin
        SmtpClient := TIpSmtpClient.Create(nil);
        SMTPClient.UserID := '';
        SMTPClient.Domain := '';

        SMTPClient.Message.NewMessage;
        SMTPClient.Message.MailTo.Add(Empfaenger);
        SMTPClient.Message.From := Absender;
        SMTPClient.Message.CC.Text := '';
        SMTPClient.Message.BCC.Text := '';
        SMTPClient.Message.Subject := Betreff;

        memMessage := TStringList.Create;
        memMessage.Add(MailText);
        MimePart := SmtpClient.Message.GetBodyPlain(True);
        MimePart.EncodeBodyStrings(memMessage, '');
        SmtpClient.Message.ContentType := 'multipart';
        SmtpClient.Message.ContentSubtype := 'mixed';

        if FileExists(Anhang)
        then SmtpClient.AttachmentList.Add(Anhang);

        SMTPClient.SendMail(MailHost, true);
        Result := true;
      end;
Der "Fehler" bei den IPro-Kompo's war
Delphi-Quellcode:
for i := 0 to 999
        do begin
             Sleep(100);
             Result := SmtpClient.Connected;
             if Result
             then begin
                    SmtpClient.Quit;
                    Break;
                  end
           end;
diese niedliche Schleife.
Ich weiss nicht warum, aber ohne funzt es jetzt.
OK, ich hab den Source ein bischen geändert, bei Ur-Source gehts jetzt aber auch.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz