AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

SMTP - Datei wird nicht mehr versendet

Ein Thema von albert1985 · begonnen am 14. Jan 2007 · letzter Beitrag vom 15. Jan 2007
Antwort Antwort
albert1985

Registriert seit: 14. Jan 2007
38 Beiträge
 
Delphi 7 Personal
 
#1

SMTP - Datei wird nicht mehr versendet

  Alt 14. Jan 2007, 20:08
Hi,
bin erst heute auf dieses Forum gestoßen und hoffe auf Hilfe bei einem kleinem Problem.
Boardsuche habe ich schon verwendet, aber ohne sehr großen Erfolg.
Bin auch nicht sicher ob ich das hier die richtige Stelle ist für mein Problem... bitte um Nachsicht, falls was verschoben werden muss

Und zwar geht um ein Problem bezüglich SMTP ...
Ich habe Indy 10 verwendet, um eine Email samt Dateianhang zu versenden und das
funktioniert auch normalerweise ohne Probleme.

Jetzt wollte ich für ein kleines Programm mit dem
ich Dateien verwalten kann noch eine Funktion einbauen, die es ermöglicht Sicherungskopien bzw. die Datei
selbst erst ab einer bestimmten Größe zu versenden ... Da kam ein Thread in diesem Forum ins Spiel, in dem
folgender Code für die Ermittlung der Dateigröße gepostet wurde:
Code:
function GetFileSize(const szFile: String): Int64;
var
  fFile: THandle;
  wfd: TWIN32FINDDATA;
begin
  result := 0;
  if not FileExists(szFile) then exit;
  fFile := FindFirstfile(pchar(szFile),wfd);
  if fFile = INVALID_HANDLE_VALUE then exit;
  result := (wfd.nFileSizeHigh*(MAXDWORD))+wfd.nFileSizeLow;
  windows.FindClose(fFile);
end;
Diesen Code habe ich erstmal so in mein Programm eingebunden, und dann folgende Zeilen hinzugefügt:
Code:
//Dateigroeße ermitteln
begin
  if GetFileSize('C:\dateiname') > 5000 then begin
danach steht dann der teil der fürs email versenden
zuständig ist ...

Es tritt jetzt zwar kein Fehler auf beim compilieren, aber die datei wird nicht versendet...

Die einzige Vermutung die ich habe, ist dass die gepostete Funktion auf die Datei zugreift und deswegen vllt.
kein Versenden möglich ist ... Ich bin verzweifelt und hab schon alles Mögliche ausprobiert

Vielleicht hat jemand von euch eine Idee ?? MfG
"Was machen Sie? – Wie? Machen? – Ich meine beruflich… – Wieso? Damit Sie Interesse heucheln können?"
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: SMTP - Datei wird nicht mehr versendet

  Alt 14. Jan 2007, 21:30
Herzlich willkommen in der Delphi-PRAXiS, Albert.

Du hast bei der Übernahme der Funktion einen Fehler übernommen und einen neuen Fehler eingeführt - diese haben aber wahrscheinlich keinen Einfluß auf dein Programm. Der Rückgabewert im Fehlerfall sollte besser -1 sein, da Null eine zulässige Dateigröße ist, und die Multiplikation mit MAXWORD verfälscht das Eregbnis, da MAXWORD um 1 zu klein ist:

Delphi-Quellcode:
function GetFileSize(const fn: TFileName): Int64;
var
  hFile: THandle;
  wfd: TWIN32FINDDATA;
begin
  Result := -1;
  hFile := FindFirstFile(PChar(fn), wfd);
  if hFile = INVALID_HANDLE_VALUE
    then Exit
    else Windows.FindClose(hFile);
  Result := Int64(wfd.nFileSizeHigh) shl 32 + wfd.nFileSizeLow;
end;
Deinen Fehler mag ich aber nicht mit dieser Funktion in Zusammenhang bringen. Hast du mal die Dateigröße geprüft, indem du einen Haltepunkt hinter den Aufruf von GetFileSize() setzt?

Freundliche Grüße vom marabu
  Mit Zitat antworten Zitat
albert1985

Registriert seit: 14. Jan 2007
38 Beiträge
 
Delphi 7 Personal
 
#3

Re: SMTP - Datei wird nicht mehr versendet

  Alt 15. Jan 2007, 18:45
Hm, hab nochmal deine Änderungen für die Funktion mit reingenommen, aber das Problem bleibt bestehen
(wie du ja selbst schon erwartet hast .

Was ich vergessen hatte zu erwähnen ist, das die Datei ohne die eigentlich vorgesehene Einbindung
von DeleteFile GELÖSCHT wird (nach dem Teil für das Versenden der Mail wollte ich das einbauen), wenn die festgelegte dateigröße erreicht ist, eben ohne aber tatsächlich eine mail zu versenden !!!

PS: Wenn ich den Code folgendermaßen schreibe nachdem ich ein edit-feld zur ausgabe eingefügt habe...

Delphi-Quellcode:
GetFileSize('dateiname');
  edit1.Text := Inttostr(GetFileSize('dateiname'));
  if Inttostr(GetFileSize('dateiname')) > '5000then
dann wird eine mail versendet ... jedoch nicht erst bei etwa 5 kb wie verlangt, sondern bereits bei 0 byte bzw.
sobald die datei existiert -.-
In Hoffnung auf Hilfe ... MfG Albert
"Was machen Sie? – Wie? Machen? – Ich meine beruflich… – Wieso? Damit Sie Interesse heucheln können?"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#4

Re: SMTP - Datei wird nicht mehr versendet

  Alt 15. Jan 2007, 20:06
Guten Abend,

Delphi-Quellcode:
 GetFileSize('dateiname');
  edit1.Text := Inttostr(GetFileSize('dateiname'));
  if GetFileSize('dateiname') > 5000 then // vielleicht geht es so besser?
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
albert1985

Registriert seit: 14. Jan 2007
38 Beiträge
 
Delphi 7 Personal
 
#5

Re: SMTP - Datei wird nicht mehr versendet

  Alt 15. Jan 2007, 20:13
Hi,

Nein, denn das ist ja genau das was ich vorher auch hatte

Habs grad nochmals versucht ... das merkwürdige dabei ist, dass bei gleichem code teilweise unterschiedliche
dinge geschehen ... teilweise wird die mail gesendet, teilweise nicht, teilweise sogar mit der gewünschten größe ...
aber auch nur einmal ...

UPDATE
AHA !!! Ich hab ne mögliche Fehlerquelle gefunden !

Und zwar die vorgegebene Dateigröße ... aus irgendeinem Grund funktioniert alle perfekt wenn ich
if GetFileSize('dateiname') > 500 then setze ... datei wird beim Erreichen dieser Größe gesendet und das funktioniert dann auch stabil!
(bisher vllt. 10 Versuche )

Ich will natürlich wissen woran dass genau liegt ... Hat jemand eine Idee ? Hängts vielleicht mit der Zuweisung
der Funktion zu "int64" zusammen ?? Wenn ja wie kann ich diese Größe auch ohne Probleme weiter hoch schrauben ?
"Was machen Sie? – Wie? Machen? – Ich meine beruflich… – Wieso? Damit Sie Interesse heucheln können?"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#6

Re: SMTP - Datei wird nicht mehr versendet

  Alt 15. Jan 2007, 20:23
Nun, ich habe den Code mal mit einem Button und ShowMessage getestet.
Und dabei habe ich nur die Ausgabe von ShowMessage bekommen wenn die Datei
größer als 5000 Byte war.

Wie setzt sich denn der 'dateiname' bei Dir zusammen?
Wie schaut der Code aus der nach
if GetFileSize('dateiname') > 5000 then kommt?

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
albert1985

Registriert seit: 14. Jan 2007
38 Beiträge
 
Delphi 7 Personal
 
#7

Re: SMTP - Datei wird nicht mehr versendet

  Alt 15. Jan 2007, 20:36
AHA !!! Ich hab ne mögliche Fehlerquelle gefunden Very Happy !

Und zwar die vorgegebene Dateigröße ... aus irgendeinem Grund funktioniert alle perfekt wenn ich
if GetFileSize('dateiname') > 500 then setze ... datei wird beim Erreichen dieser Größe gesendet und das funktioniert dann auch stabil!
(bisher vllt. 10 Versuche Wink)

Ich will natürlich wissen woran dass genau liegt ... Hat jemand eine Idee ? Hängts vielleicht mit der Zuweisung
der Funktion zu "int64" zusammen ?? Wenn ja wie kann ich diese Größe auch ohne Probleme weiter hoch schrauben ?
"Was machen Sie? – Wie? Machen? – Ich meine beruflich… – Wieso? Damit Sie Interesse heucheln können?"
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: SMTP - Datei wird nicht mehr versendet

  Alt 15. Jan 2007, 20:44
Ich glaube an Int64 brauchst Du nicht herumzuschrauben.
Wenn da der Maximalwert erreicht ist, hast Du schon eine sehr große Datei.

Aus der Delphi Hilfe:
Zitat:
Int64 –2^63..2^63–1 signed 64-bit
Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
albert1985

Registriert seit: 14. Jan 2007
38 Beiträge
 
Delphi 7 Personal
 
#9

Re: SMTP - Datei wird nicht mehr versendet

  Alt 15. Jan 2007, 20:48
Nochmal ich ...
Komischerweise funktionierts jetzt auch mit dem Wert 5000, hab aber keine Ahnung warum jetzt plötzlich,
da ich eigentlich nichts verändert hab ...
"Was machen Sie? – Wie? Machen? – Ich meine beruflich… – Wieso? Damit Sie Interesse heucheln können?"
  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 02:30 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