|
Antwort |
Registriert seit: 10. Mär 2005 Ort: Mitten in Deutschland 332 Beiträge Delphi 10.2 Tokyo Professional |
#1
Hallo Leute,
ich habe hier eine Lösung mit der man automatisch Ausdrueck auf einem Server ins PDF - Format wandeln kann und dann per Mail verschicken kann. Dazu benutze ich eine Batch Datei. Nun wollte ich gerne die Batch Datei durch ein Delphi Programm ersetzte, da ich hier noch etwas mehr machen wollte. Nur leider geht es nicht und ich verstehe einfach nicht warum. Die Batch un das Delphi Programm sind nicht von mir sondern habe ich im Internet gefunden und erweiter Es hängt an dieser Zeile in meinem Programm. Die Batch Datei geht ohne Probleme. Batch Datei : c:\programme\gs\redmon\redfile.exe %PSFILE% Delphi Progamm : ExecuteFile('c:\programme\gs\redmon\redfile.exe ','"'+PSFILE+'"','c:\programme\gs\redmon\',False) ; Hier werden die Daten vom Virtuellen Port übernommen und in eine Datei gespeicht. Je nachdem ob ich die Variable PSFile als Variabel oder mit der exe übergeben wird die Datei angelegt oder nicht. Wenn die Datei angelegt wird ist Sie jedoch leer und das Fenster schließt sich nicht am Ende. Kamm mir hier jemand helfen. Ich hänge mal beide Dateien mit an. Danke Dumpfbacke Hier die Batch Datei
Delphi-Quellcode:
Hier mein Programm
rem --------------------------------------------------------------
rem Konverter Postscript Ausdruck zu SMTP Mail rem rem Frank Carius, [email]info@netatwork.de[/email], 31. Mrz 2004 rem rem Diese Job wird durch "REDMON" aufgerufen, welcher als Postmonitor rem die Ausgaben eines Postscript Treibers umleitet. rem Anhand des Job Owners wird die PS Datei in PDF konvertiert und per rem SMTP an den Owner zurückgesendet rem Version 1.0 erste Version rem Version 1.1 Korrekturen: fehlende Anfuerhungszeichen etc rem Version 1.2 Verbessertes Debugging rem Version 1.3 Verbessertes Debugging bei BLAT aktiviert mehr Doku rem Unterstützung von GS8.14 Kennwortschutz rem Version 1.4 Sonderzeichenbehandlung. danke an Andreas Huch rem Version 1.5 Umstellung auf REDFILE statt Redrum da Probleme mit NT4/WIN95 rem Neue Variable PDF2SMTPTEMP rem Kommandoparameter nicht mehr genutzt. rem Version 1.6 Anpassung der Encryption für GhostScript 8.51 rem Anpassung der TEMP-Pfade für Windows 20003 rem -------------------------------------------------------------- rem --------------------- Definition der Parameter. muessen angepasst werden !! --------------- rem ----------------- Pfad für temporäre Dateien rem set pdf2smtptemp=%TEMP% set pdf2smtptemp=C:\Programme\gs\Redmon rem Achtung: Das Verzeichnis muss existieren, rem SYSTEM benötigt ÄNDERN-Rechte, rem kein \ am Ende anhaengen rem ----------------- Pfad für die Protokolldatei set pdf2smtplog="c:\Programme\gs\redmon\pdf2smtp.log" rem ----------------- Pfad zu Ghostscript set pdf2smtpgs="c:\programme\gs\gs8.63\bin\gswin32c.exe" rem ----------------- Pfad zu BLAT set pdf2smtpblat="c:\Programme\gs\redmon\blat.exe" rem ----------------- SMTP-Domäne fuer die Mails set pdf2smtpmaildomain=firma.de rem----------------- Mailserver zum Versand der Nachrichten. IP-Adresse oder DNS-Name set pdf2smtpmailserver="mail.firma.de" rem----------------- Einstellungen für den PDF Schutz ALT rem -3904 = nur Ansehen rem -1856 = Ansehen und Drucken rem -4 = enable all rem details [url]http://casper.ghostscript.com/~ghostgum/pdftips.htm[/url] set pdfprotect=-1856 set pdfpassword=geheim echo PDF2SMTP %DATE% %TIME% PDF2SMTP Version 1.5 gestartet------------------- >>%pdf2smtplog% rem ----------------- Behandlung der Sonderzeichen echo PDF2SMTP %DATE% %TIME% Behandlung der Sonderzeichen ------------------- >>%pdf2smtplog% SET REDMON_DOCNAME=%REDMON_DOCNAME:\=_% SET REDMON_DOCNAME=%REDMON_DOCNAME:/=_% SET REDMON_DOCNAME=%REDMON_DOCNAME::=_% SET REDMON_DOCNAME=%REDMON_DOCNAME:?=_% SET REDMON_DOCNAME=%REDMON_DOCNAME:<=_% SET REDMON_DOCNAME=%REDMON_DOCNAME:>=_% SET REDMON_DOCNAME=%REDMON_DOCNAME:|=_% SET REDMON_DOCNAME=%REDMON_DOCNAME:"=_% rem Eine Behandlung von "*" als Sonderzeichen ist mir nicht bekannt rem ----------------- Ausgabe der Daten in die Protokolldatei zur Fehlersuche echo PDF2SMTP %DATE% %TIME% Umgebungsvariablen -------------------------------- >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% REDMON_PORT = %REDMON_PORT% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% REDMON_JOB = %REDMON_JOB% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% REDMON_PRINTER = %REDMON_PRINTER% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% REDMON_MACHINE = %REDMON_MACHINE% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% REDMON_USER = %REDMON_USER% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% REDMON_DOCNAME = %REDMON_DOCNAME% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% REDMON_FILENAME = %REDMON_FILENAME% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% REDMON_SESSIONID = %REDMON_SESSIONID% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% Kommandozeile = %1 >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% PDF2SMTPTEMP-Pfad= %PDF2SMTPTEMP% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% GS-Pfad = %pdf2smtpgs% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% Blat-Pfad = %pdf2smtpblat% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% Mailserver = %pdf2smtpmailserver% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% SMTP-Domain = %pdf2smtpmaildomain% >>%pdf2smtplog% rem ----------------- temporaere Dateipfade festlegen. set BODYFILE="%PDF2SMTPTEMP%\%REDMON_USER%-%REDMON_DOCNAME%-%REDMON_JOB%.TXT" set PDFFILE="%PDF2SMTPTEMP%\%REDMON_USER%-%REDMON_DOCNAME%-%REDMON_JOB%.PDF" set PSFILE="%PDF2SMTPTEMP%\job-%REDMON_JOB%.ps" rem ----------------- Ausgabe dieser temporaeren Dateipfade in die Protokolldatei echo PDF2SMTP %DATE% %TIME% BODYFILE = %BODYFILE% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% PDFFILE = %PDFFILE% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% PSFILE = %PSFILE% >>%pdf2smtplog% rem ----------------- Druckausgabe von STDOUT abholen echo PDF2SMTP %DATE% %TIME% Postscript von STDOUT abholen >>%pdf2smtplog% c:\programme\gs\redmon\redfile.exe %PSFILE% rem ----------------- Ghostscript Konvertierung echo PDF2SMTP %DATE% %TIME% GS Konvertierung startet Input : %PSFILE% >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% GS Konvertierung startet Output: %PDFFILE% >>%pdf2smtplog% start "PDF2SMTP GSKonvert" /WAIT %pdf2smtpgs% -dNOPAUSE -dBATCH -dEncryptionR#3 -dKeyLength#128 -sDEVICE=pdfwrite -dPDFSETTINGS=/default -dPermissions#%pdfprotect% -sOwnerPassword=%pdfpassword% -dCompatibilityLevel=1.4 -sOutputFile=%PDFFILE% %PSFILE% echo PDF2SMTP %DATE% %TIME% GS Konvertierung beendet >>%pdf2smtplog% rem ----------------- Fehlerbehandlung if exist %PDFFILE% goto sendpdf echo PDF2SMTP %DATE% %TIME% Fehler bei der Konvertierung !! >>%pdf2smtplog% copy %PSFILE% *.err echo PDF2SMTP %DATE% %TIME% PostscriptInput gesichert als %PSFILE%.err >>%pdf2smtplog% :sendpdf rem goto skipsmtp ´rem ----------------- Versand der Mail an den Benutzer echo PDF2SMTP %DATE% %TIME% Sende Anlage per Mail >>%pdf2smtplog% echo PDF2SMTP %DATE% %TIME% Empfaenger: %REDMON_USER%@%pdf2smtpmaildomain% >>%pdf2smtplog% rem ----------------- Erzeugen des BODY echo PDF2SMTP %DATE% %TIME% Erzeuge Mailbody >>%pdf2smtplog% echo Ihr Konvertierungsauftrag wurde ausgeführt > %BODYFILE% if exist %PDFFILE% echo Sie finden Die PDF-Datei als Anlage an diese Mail >>%BODYFILE% if not exist %PDFFILE% echo !!! FEHLER bei der Konvertierung !!! >>%BODYFILE% echo --------------------------------------------------- >>%BODYFILE% echo Ausdruck erzeugt von: %REDMON_USER% >>%BODYFILE% echo Computer : %REDMON_MACHINE% >>%BODYFILE% echo Drucker : %REDMON_PRINTER% >>%BODYFILE% echo Dokumentname : %REDMON_DOCNAME% >>%BODYFILE% echo Jobnummer : %REDMON_JOB% >>%BODYFILE% echo --------------------------------------------------- >>%BODYFILE% echo Erstellt von PDF2SMTP Version 1.5 am %DATE% %TIME% >>%BODYFILE% echo PDF2SMTP %DATE% %TIME% Sende SMTP-Mail >>%pdf2smtplog% if exist %PDFFILE% start "PDF2SMTP Blat" /Wait %pdf2smtpblat% %BODYFILE% -server %pdf2smtpmailserver% -f "pdf2smtp@%pdf2smtpmaildomain%" -t "%REDMON_USER%@%pdf2smtpmaildomain%" -s "%REDMON_DOCNAME%" -attach %PDFFILE% if not exist %PDFFILE% start "PDF2SMTP Blat" /Wait %pdf2smtpblat% %BODYFILE% -server %pdf2smtpmailserver% -f "pdf2smtp@%pdf2smtpmaildomain%" -t "%REDMON_USER%@%pdf2smtpmaildomain%" -s "PDF2SMTP Fehler mit %REDMON_DOCNAME%" :skipsmtp rem Archivfunktion. Kopieren Sie alle erzeugten PDFs einfach in ein Verzeichnis rem Ich nutze diese Funktion auf dem Notebook, wenn ich keinen Mailserver zur Verfügung habe rem copy %PDFFILE% c:\ echo PDF2SMTP %DATE% %TIME% Cleanup >>%pdf2smtplog% rem del %BODYFILE% rem del %PDFFILE% rem del %PSFILE% echo PDF2SMTP %DATE% %TIME% Beendet -------------------------------- >>%pdf2smtplog%
Delphi-Quellcode:
program pdf2smtp; {$APPTYPE CONSOLE} uses WinTypes, WinProcs, SysUtils, IniFiles; var {Variablendeklaration, z.T. mit Defaultbelegung, falls keine anderen Werte aus dem INI-File gelesen werden koennen} PSFILE, BODYFILE, PDFFILE, TEMP : String; REDMON_USER, REDMON_DOCNAME, REDMON_JOB, REDMON_MACHINE, REDMON_PRINTER : String; REDMON_PORT, REDMON_FILENAME, REDMON_SESSIONID : String; result : boolean; pdf2smtpini : String='pdf2smtp.ini'; inifilepath : String='c:\programme\gs\redmon'; pdf2smtplog : String='c:\programme\gs\redmon\pdf2smtp.log'; pdf2smtpgs : String='c:\programme\gs\gs8.14\bin\gswin32c.exe'; pdf2smtpblat : String='c:\programme\gs\redmon\blat.exe'; maildomain : String='firma.de'; mailserver : String='mail.firma.de'; sender : String='pdf2smtp'; pdfprotect : String='64'; pdfpassword : String=''; outputsettings : String='/default'; compatibility : String='1.4'; F, LOG, BODY, PDF : TextFile; FileMode : Byte = 2; { die Funktion ExecAndWait entliehen aus: [url]http://www.delphi-fundgrube.de/faq08.htm[/url] 16bit Teil entfernt; WindowState ist SW_normal, SW_minimized oder SW_maximized} { WindowState is one of the SW_xxx constants. Look up ShowWindow in the API help for a list.} function ExecAndWait(const Filename, Params: string; WindowState: word): boolean; var SUInfo: TStartupInfo; ProcInfo: TProcessInformation; CmdLine: string; begin { Enclose filename in quotes to take care of long filenames with spaces. } CmdLine := '"' + Filename + '" ' + Params; FillChar(SUInfo, SizeOf(SUInfo), #0); with SUInfo do begin cb := SizeOf(SUInfo); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := WindowState; end; Result := CreateProcess(NIL, PChar(CmdLine), NIL, NIL, FALSE, CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, NIL, PChar(ExtractFilePath(Filename)), SUInfo, ProcInfo); { Wait for it to finish. } if Result then WaitForSingleObject(ProcInfo.hProcess, INFINITE); end; procedure ExecuteFile(const AFilename: String; AParameter, ACurrentDir: String; AWait: Boolean); var si : TStartupInfo; pi : TProcessInformation; begin if Length(ACurrentDir) = 0 then begin ACurrentDir := ExtractFilePath(AFilename); if ACurrentDir[Length(ACurrentDir)] = '' then Delete(ACurrentDir, Length(ACurrentDir), 1); end; FillChar(si, SizeOf(si), 0); with si do begin cb := SizeOf(si); dwFlags := STARTF_USESHOWWINDOW; wShowWindow := SW_NORMAL; end; FillChar(pi, SizeOf(pi), 0); if Length(AParameter) = 0 then AParameter := Format('"%s"', [AFilename]) else AParameter := Format('"%s" "%s"', [AFilename, AParameter]); if CreateProcess(Nil, PChar(AParameter), Nil, Nil, False, CREATE_DEFAULT_ERROR_MODE or CREATE_NEW_CONSOLE or NORMAL_PRIORITY_CLASS, Nil, PChar(ACurrentDir), si, pi) then begin try if AWait then WaitForSingleObject(pi.hProcess, INFINITE); finally CloseHandle(pi.hProcess); CloseHandle(pi.hThread); end; end; end; {Auslesen aller Werte aus dem Ini-File in Variablen} procedure ReadIniFile; var IniFile : TIniFile; begin inifilepath := ExtractFilePath(ParamStr(0)); IniFile := TIniFile.Create(inifilepath+pdf2smtpini); with IniFile do begin pdf2smtplog := IniFile.ReadString('Path','pdf2smtplog',pdf2smtplog); pdf2smtpgs := IniFile.ReadString('Path','pdf2smtpgs',pdf2smtpgs); pdf2smtpblat := IniFile.ReadString('Path','pdf2smtpblat',pdf2smtpblat); maildomain := IniFile.ReadString('Mail','maildomain',maildomain); mailserver := IniFile.ReadString('Mail','mailserver',mailserver); sender := IniFile.ReadString('Mail','sender',sender); pdfprotect := IniFile.ReadString('Pdf','pdfprotect',pdfprotect); pdfpassword := IniFile.ReadString('Pdf','pdfpassword',pdfpassword); outputsettings := IniFile.ReadString('Pdf','outputsettings',outputsettings); compatibility := IniFile.ReadString('Pdf','compatibility',compatibility); end; IniFile.Free; end; begin { TODO -oUser -cConsole Main : Insert code here } {Erzeuge LOGFILE; anhaengen falls existiert, sonst neu anlegen} AssignFile(LOG, pdf2smtplog); try Append(LOG); except Rewrite(LOG); end; Writeln(LOG, '---------------------------------------------------'); Writeln(LOG, 'Logfile erstellt von PDF2SMTP Version 1.4 am '+DateToStr(Date)); Writeln(LOG, '---------------------------------------------------'); CloseFile(LOG); {Werte aus dem inifile lesen} readinifile; {Umgebungsvariablen lesen} TEMP := GetEnvironmentVariable('TEMP'); REDMON_USER := GetEnvironmentVariable('REDMON_USER'); REDMON_DOCNAME := GetEnvironmentVariable('REDMON_DOCNAME'); REDMON_JOB := GetEnvironmentVariable('REDMON_JOB'); REDMON_MACHINE := GetEnvironmentVariable('REDMON_MACHINE'); REDMON_PRINTER := GetEnvironmentVariable('REDMON_PRINTER'); REDMON_PORT := GetEnvironmentVariable('REDMON_PORT'); REDMON_FILENAME :=GetEnvironmentVariable('REDMON_FILENAME'); REDMON_SESSIONID :=GetEnvironmentVariable('REDMON_SESSIONID'); {Logfile schreiben} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' Umgebungsvariablen --------------------------------'); writeln(LOG, DateToStr(Date)+ ' REDMON_PORT '+REDMON_PORT ); writeln(LOG, DateToStr(Date)+ ' REDMON_JOB '+REDMON_JOB ); writeln(LOG, DateToStr(Date)+ ' REDMON_PRINTER '+REDMON_PRINTER ); writeln(LOG, DateToStr(Date)+ ' REDMON_MACHINE '+REDMON_MACHINE ); writeln(LOG, DateToStr(Date)+ ' REDMON_USER '+REDMON_USER ); writeln(LOG, DateToStr(Date)+ ' REDMON_DOCNAME '+REDMON_DOCNAME ); writeln(LOG, DateToStr(Date)+ ' REDMON_FILENAME '+REDMON_FILENAME ); writeln(LOG, DateToStr(Date)+ ' REDMON_SESSIONID '+REDMON_SESSIONID ); writeln(LOG, DateToStr(Date)+ ' Inputfile '+ParamStr(1) ); writeln(LOG, DateToStr(Date)+ ' TEMP-Pfad '+TEMP ); writeln(LOG, DateToStr(Date)+ ' GS-Pfad '+pdf2smtpgs ); writeln(LOG, DateToStr(Date)+ ' Blat-Pfad '+pdf2smtpblat ); writeln(LOG, DateToStr(Date)+ ' IniFile-Pfad '+inifilepath+pdf2smtpini ); CloseFile(LOG); {Behandlung der Sonderzeichen} REDMON_DOCNAME := stringreplace(REDMON_DOCNAME,'\','_',[rfReplaceAll]); REDMON_DOCNAME := stringreplace(REDMON_DOCNAME,'/','_',[rfReplaceAll]); REDMON_DOCNAME := stringreplace(REDMON_DOCNAME,':','_',[rfReplaceAll]); REDMON_DOCNAME := stringreplace(REDMON_DOCNAME,'?','_',[rfReplaceAll]); REDMON_DOCNAME := stringreplace(REDMON_DOCNAME,'<','_',[rfReplaceAll]); REDMON_DOCNAME := stringreplace(REDMON_DOCNAME,'>','_',[rfReplaceAll]); REDMON_DOCNAME := stringreplace(REDMON_DOCNAME,'|','_',[rfReplaceAll]); REDMON_DOCNAME := stringreplace(REDMON_DOCNAME,'"','_',[rfReplaceAll]); {Dateinamen erzeugen} BODYFILE := TEMP +'\'+ REDMON_USER +'-'+ REDMON_DOCNAME +'-'+ REDMON_JOB +'.txt'; PDFFILE := TEMP +'\'+ REDMON_USER +'-'+ REDMON_DOCNAME +'-'+ REDMON_JOB +'.pdf'; PSFILE := TEMP +'\job-'+REDMON_JOB+'.ps'; {Hier holen wir mal die Druckausgabe ab} ExecuteFile('c:\programme\gs\redmon\redfile.exe ','"'+PSFILE+'"','c:\programme\gs\redmon\',False); {Logfile schreiben} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' temporäre Dateipfade --------------------------------'); writeln(LOG, DateToStr(Date)+ ' BODYFILE = '+BODYFILE); writeln(LOG, DateToStr(Date)+ ' PDFFILE = '+PDFFILE); writeln(LOG, DateToStr(Date)+ ' PSFILE = '+PSFILE); writeln(LOG, DateToStr(Date)+ ' REDMON_DOCNAME neu = '+REDMON_DOCNAME); Writeln(LOG, '-----------------------------------------------------------------------'); CloseFile(LOG); {Ghostscript Konvertierung} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' GS Konvertierung startet Input '+PSFile); //writeln(LOG, DateToStr(Date)+ ' GS Konvertierung startet Input '+ParamStr(1)); writeln(LOG, DateToStr(Date)+ ' GS Konvertierung startet Output '+PDFFILE); CloseFile(LOG); //result := ExecAndWait(pdf2smtpgs, '-dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS='+outputsettings+' -dCompatibilityLevel='+compatibility+' -dPermissions='+pdfprotect+' -sOwnerPassword='+pdfpassword+' -sOutputFile="'+PDFFILE+'" '+ParamStr(1), SW_normal); result := ExecAndWait(pdf2smtpgs, '-dNOPAUSE -dBATCH -sDEVICE=pdfwrite -dPDFSETTINGS='+outputsettings+' -dCompatibilityLevel='+compatibility+' -dPermissions='+pdfprotect+' -sOwnerPassword='+pdfpassword+' -sOutputFile="'+PDFFILE+'" '+PSFILE, SW_normal); {Logfile schreiben} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' GS Konvertierung beendet'); CloseFile(LOG); {wenn die Umwandlung fehlschlaegt, dann das Postscriptfile sichern, und bei Erfolg/Misserfolg entsprechende Meldungen ins Log schreiben --- diese Funktion bisher nicht getestet ---} if result=false then begin result := ExecAndWait('copy', '"'+ParamStr(1)+ ' error-'+Paramstr(1)+'.ps', SW_normal); if result = true then begin AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' Fehler bei der Konvertierung aufgetreten !!'); writeln(LOG, DateToStr(Date)+ ' PostscriptInput gesichert als'+ParamStr(1)); CloseFile(LOG); end else begin AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' Fehler bei der Konvertierung aufgetreten !!'); writeln(LOG, DateToStr(Date)+ ' PostscriptInput wurde nicht gesichert !!!'); CloseFile(LOG); end; {Den Mailbody erzeugen, wenn Fehler bei der Konvertierung auftrat...} AssignFile(F, BODYFILE); Rewrite(F); Writeln(F, '!!! FEHLER bei der Konvertierung !!!'); Writeln(F, '---------------------------------------------------'); Writeln(F, 'Ausdruck erzeugt von: '+REDMON_USER); Writeln(F, 'Computer : '+REDMON_MACHINE); Writeln(F, 'Drucker : '+REDMON_PRINTER); Writeln(F, 'Dokumentname : '+REDMON_DOCNAME); Writeln(F, 'Jobnummer : '+REDMON_JOB); Writeln(F, '---------------------------------------------------'); Writeln(F, 'Erstellt von PDF2SMTP Version 1.4 am '+DateToStr(Date)); CloseFile(F); {...und dann versenden} result := ExecAndWait(pdf2smtpblat, '"'+BODYFILE+'"'+' -server "'+mailserver+'" -f "'+sender+'@'+maildomain+'" -t "'+REDMON_USER+'@'+maildomain+'" -s "PDF2SMTP Fehler mit '+REDMON_DOCNAME+'" -log '+pdf2smtplog, SW_normal); {Logfile schreiben} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' Exitcode von blat: '+BoolToStr(result, FALSE)); writeln(LOG, DateToStr(Date)+ ' Beendet --------------------------------------'); CloseFile(LOG); {Programm beenden mit Errorcode 1} Halt(1); end; {Logfile schreiben} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' Sende Anlage per Mail'); writeln(LOG, DateToStr(Date)+ ' Empfaenger: '+REDMON_USER+'@'+maildomain); writeln(LOG, DateToStr(Date)+ ' Erzeuge Mailbody'); CloseFile(LOG); {Den Mailbody erzeugen, wenn Konvertierung erfolgreich...} AssignFile(F, BODYFILE); Rewrite(F); Writeln(F, 'Ihr Konvertierungsauftrag wurde ausgefuehrt'); Writeln(F, 'Sie finden die PDF-Datei als Anlage an diese Mail'); Writeln(F, '---------------------------------------------------'); Writeln(F, 'Ausdruck erzeugt von: '+REDMON_USER); Writeln(F, 'Computer : '+REDMON_MACHINE); Writeln(F, 'Drucker : '+REDMON_PRINTER); Writeln(F, 'Dokumentname : '+REDMON_DOCNAME); Writeln(F, 'Jobnummer : '+REDMON_JOB); Writeln(F, '---------------------------------------------------'); Writeln(F, 'Erstellt von PDF2SMTP Version 1.4 am '+DateToStr(Date)); CloseFile(F); {Logfile schreiben...} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' Sende SMTP-Mail'); CloseFile(LOG); {... und Mail versenden mit blat} //Eckenroth result := ExecAndWait(pdf2smtpblat, '"'+BODYFILE+'"'+' -server "'+mailserver+'" -f "pdf2smtp@'+maildomain+'" -t "'+REDMON_USER+'@'+maildomain+'" -s "'+REDMON_DOCNAME+'" -log '+pdf2smtplog+' -attach '+'"'+PDFFILE+'"', SW_normal); {Logfile schriben} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' Exitcode von blat: '+BoolToStr(result, FALSE)); writeln(LOG, DateToStr(Date)+ ' Cleanup'); CloseFile(LOG); {aufraemen} AssignFile(BODY, BODYFILE); Reset(BODY); Close(BODY); //ERASE(BODY); AssignFile(PDF, PDFFILE); Reset(PDF); Close(PDF); //ERASE(PDF); {Ende im Logfile festhalten} AssignFile(LOG, pdf2smtplog); Append(LOG); writeln(LOG, DateToStr(Date)+ ' Beendet --------------------------------------'); CloseFile(LOG); end.
Tanja
|
Zitat |
Registriert seit: 29. Mai 2002 37.621 Beiträge Delphi 2006 Professional |
#2
Mein Delphi kennt kein ExecuteFile. Was ist das für eine Funktion?
Michael
Ein Teil meines Codes würde euch verunsichern. |
Zitat |
Registriert seit: 17. Sep 2006 Ort: Barchfeld 27.631 Beiträge Delphi 12 Athens |
#3
Ab Zeile 66 . Etwas weniger Code bzw. alles als Anhang hätte es aber auch getan.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein) Dieser Tag ist längst gekommen |
Zitat |
Registriert seit: 10. Mär 2005 Ort: Mitten in Deutschland 332 Beiträge Delphi 10.2 Tokyo Professional |
#4
Zitat von Luckie:
Mein Delphi kennt kein ExecuteFile. Was ist das für eine Funktion?
Dumpfbacke
Tanja
|
Zitat |
Registriert seit: 29. Mai 2002 37.621 Beiträge Delphi 2006 Professional |
#5
Ist im ganzen Code untergegangen.
Michael
Ein Teil meines Codes würde euch verunsichern. |
Zitat |
Ansicht |
Linear-Darstellung |
Zur Hybrid-Darstellung wechseln |
Zur Baum-Darstellung wechseln |
ForumregelnEs 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
|
|
Nützliche Links |
Heutige Beiträge |
Sitemap |
Suchen |
Code-Library |
Wer ist online |
Alle Foren als gelesen markieren |
Gehe zu... |
LinkBack |
LinkBack URL |
About LinkBacks |