![]() |
Wie TurboPower InternetPro FTP in eigener Unit/Komponente ?
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; |
Re: Wie TurboPower InternetPro FTP in eigener Komponente ?
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. |
Re: Wie TurboPower InternetPro FTP in eigener Komponente ?
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. :gruebel: :gruebel: :gruebel: |
Re: Wie TurboPower InternetPro FTP in eigener Komponente ?
Nur so als Frage: Wo ist die, im Titel angesprochene, Komponente ?
Entweder Titel oder Code ändern :mrgreen: Zur frage: Gibt es vielleicht irgendwo eine Prozedur Connect() oder so ? |
Re: Wie TurboPower InternetPro FTP in eigener Unit/Komponent
Hi jfheins,
nur so als Antwort: Jetzt zufrieden ? Zitat:
Delphi-Quellcode:
wird von
Connect
Delphi-Quellcode:
ausgeführt, bzw. genauer gesagt halt nicht.
SmtpClient.SendMail()
|
Re: Wie TurboPower InternetPro FTP in eigener Komponente ?
Zitat:
Zitat:
|
Re: Wie TurboPower InternetPro FTP in eigener Unit/Komponent
So gehts.
Delphi-Quellcode:
Der "Fehler" bei den IPro-Kompo's war
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;
Delphi-Quellcode:
diese niedliche Schleife.
for i := 0 to 999
do begin Sleep(100); Result := SmtpClient.Connected; if Result then begin SmtpClient.Quit; Break; end end; 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. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz