Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Hilfe!! Script erstellen, das 2 Dateien prüfen soll und dann als email zb. mit blat versenden.

Mitglied: askando

askando (Level 1) - Jetzt verbinden

18.12.2013, aktualisiert 15:37 Uhr, 6020 Aufrufe, 10 Kommentare

Hallo!

Ich habe ein Problem, das mein ein Vorgänger von mir für eine Fax Lösung (GFI Fax) ein Programm geschrieben hat und dieses nur im kompilierten Status aufzufinden ist und nicht nicht mehr funktioniert.

Nun im Prinzip soll das Programm oder meinetwegen auch Script prüfen ob in einem Verzeichnis 2 Dateien (Pdf und txt) vorhanden sind. (PDF = Fax das als Anhang per Email versendet werden soll; TXT= Absender, Faxnummer u. Auftragsnummer) wenn beide vorhanden, dann kopiere in ein "out" Verzeichnis und danach versende die pdf per mail.

Ich bin kein Programmierer, sondern kümmere mich ausschließlich um Virtualisierungen etc. nun da ich nicht weiß in welcher Sprache er das Programm geschrieben hat und auch leider nirgendwo Projektdateien hinterlassen hat muss ich mir was einfallen lassen.
Wäre echt froh wenn mir jemand dabei helfen kann.

Mfg
Mitglied: ChrisDynamite
LÖSUNG 18.12.2013, aktualisiert um 15:37 Uhr
im einfachsten fall kann man das schon per batch script machen.

:nachoben
if exist c:\inputornder\*.pdf {

dann hier die txt auslesen. das geht am besten per findstr. den wert auslesen und in eine variable speichern

dann blat aufrufen und die variable irgendwo dem programm übergeben (muss ich mir genauer anschauen)
sprung wieder nach oben
goto nachoben
}

und um das in einer schleife auszuführen und möglichst einfach zu halten (das ist die ultra-billig-variante) in den else zweig ein:

else {
goto nachoben
}

soooo ungefähr kann man das sicherlich lösen.
wenn ich zeit finde mach ich das heute abend. schreib mir, falls du keine andere lösung gefunden hast.

grüße chris
Bitte warten ..
Mitglied: askando
18.12.2013 um 15:38 Uhr
Danke Chris! ich versuche es mal so wie du es vorgeschlagen hast.
Bitte warten ..
Mitglied: ChrisDynamite
LÖSUNG 18.12.2013, aktualisiert um 16:33 Uhr
nach welchem schema heißen die txt und pdf dateien?
Bitte warten ..
Mitglied: ChrisDynamite
LÖSUNG 18.12.2013, aktualisiert um 16:33 Uhr
heißt die txt oder pdf immer gleich?
Bitte warten ..
Mitglied: ChrisDynamite
LÖSUNG 18.12.2013, aktualisiert um 16:33 Uhr
hier der ca. codeteil:

:run
set TXT_INHALT = ""
	IF EXIST "c:\Ordner\*.pdf" && IF EXIST "c:\Ordner\*.txt"
		{
		set /p TXT_INHALT=<c:\name der txt.txt
		
		
		rem hier kommt jetzt der blat code und als platzhalter der email adresse kommt der inhalt von TXT_inhalt rein.
		rem zurück zum anfang
		goto run
		}
		
	ELSE 
		{
		rem zurück zum Anfang
		goto run
		}
Bitte warten ..
Mitglied: colinardo
LÖSUNG 18.12.2013, aktualisiert um 23:30 Uhr
Hallo askando,
wenn es ein AutoIT Script sein darf, das den Ordner selbständig in einem änderbaren Intervall überprüft, inklusive integriertem Mailversand ohne externe Tools(via CDO):
Es muss nur einmal gestartet werden, und läuft dann permanent im Hintergrund.
Die Variablen die angepasst werden müssen, findest du im Kopft des Scripts.
  • Zeile 4 = Pfad in dem die PDF-Dateien eingehen
  • Zeile 5 = Pfad in den die PDF-Dateien verschoben werden
  • Zeile 7 = Intervall (Sekunden) in dem der Ordner auf neue Faxe überprüft werden soll
  • ab Zeile 9 die Daten für deinen Mailserver und die Mailadressen
Der Code geht jetzt davon aus das die Textdatei den gleichen Namen wie das PDF besitzt.
#NoTrayIcon
#Include <file.au3>
; Variablen ------------------
global $CHECKDIR = "C:\Temp\source"
global $OUTDIR = "C:\Temp\target"
; Intervall in dem der Ordner überprüft werden soll (Sekunden)
Const $CHECKINTERVALL = 5
; Mail Daten
Global $FROMEMAIL = ""
Global $TOEMAIL = ""
Const $FROMNAME = "Dein Name"
Const $MAILSERVER = "SMTP.SERVER.DE"
Const $SMTPUSER = "SMTPUSERNAME"
Const $SMTPPASS = "SMTPPASSWORD"
Const $SMTPPORT = "25"
Const $SMTPUSESSL = 1
;-----------------------------
While 1
	$search = FileFindFirstFile($CHECKDIR & "\*.pdf")
	if $search <> -1 then
		While 1
			$file = FileFindNextFile($search)
			If @error Then ExitLoop
			local $szDrive, $szDir, $szFName, $szExt
			_PathSplit($file, $szDrive, $szDir, $szFName, $szExt)
			$pdfFile = $CHECKDIR & "\" & $file
			$txtFile = $CHECKDIR & "\" & $szFName & ".txt"
			if FileExists($txtFile) then
				$f = FileOpen($txtFile)
				$line1 = FileReadLine($f,1)
				$line2 = FileReadLine($f,2)
				FileClose($f)
				$text_faxnummer = StringRegExp($line1,",\s*([^\r\n]+)",3)
				$ret1 = @error
				$text_email = StringRegExp($line2,"fr=([A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6})",3)
				$ret2 = @error
				if $ret1 = 0 and $ret2 = 0 then
					$FROMEMAIL = StringReplace($text_email[0]," ","")
					$TOEMAIL = StringReplace($text_faxnummer[0]," ","") & "@faxmaker.com"
					_INetSmtpMailCom($MAILSERVER,$FROMNAME,$FROMEMAIL,$TOEMAIL,"Neues Fax","Im Anhang finden sie das Fax als PDF",$pdfFile,"","","Normal",$SMTPUSER,$SMTPPASS,$SMTPPORT,$SMTPUSESSL)
					FileMove($pdfFile,$OUTDIR & "\",9)
					FileMove($txtFile,$OUTDIR & "\",9)
				Endif
			Endif
		WEnd
	EndIf
	FileClose($search)
	Sleep($CHECKINTERVALL * 1000)
WEnd



; Variables for Function _INetSmtpMailCom
;##################################
;~ $SmtpServer = ""                            ; address for the smtp-server to use - REQUIRED
;~ $FromName = "User"                          ; name from who the email was sent
;~ $FromAddress = ""                           ; address from where the mail should come
;~ $ToAddress = ""                             ; destination address of the email - REQUIRED
;~ $Subject = "testsubject"                       ; subject from the email - can be anything you want it to be
;~ $Body = "This Is The Body"                  ; the messagebody from the mail - can be left blank but then you get a blank mail
;~ $AttachFiles = ""                           ; the file you want to attach- leave blank if not needed
;~ $CcAddress = ""                             ; address for cc - leave blank if not needed
;~ $BccAddress = ""                            ; address for bcc - leave blank if not needed
;~ $Importance = "Normal"                      ; Send message priority: "High", "Normal", "Low"
;~ $Username = ""                              ; username for the account used from where the mail gets sent - REQUIRED
;~ $Password = ""                              ; password for the account used from where the mail gets sent - REQUIRED
;~ $IPPort = 25                               ; port used for sending the mail

;~ $ssl=0                                   ; GMAILenables/disables secure socket layer sending - put to 1 if using httpS


Func _INetSmtpMailCom($s_SmtpServer, $s_FromName, $s_FromAddress, $s_ToAddress, $s_Subject = "", $as_Body = "", $s_AttachFiles = "", $s_CcAddress = "", $s_BccAddress = "", $s_Importance="Normal", $s_Username = "", $s_Password = "", $IPPort = 25, $ssl = 0)
    Local $objEmail = ObjCreate("CDO.Message")
    $objEmail.From = '"' & $s_FromName & '" <' & $s_FromAddress & '>'
    $objEmail.To = $s_ToAddress
    Local $i_Error = 0
    Local $i_Error_desciption = ""
    If $s_CcAddress <> "" Then $objEmail.Cc = $s_CcAddress
    If $s_BccAddress <> "" Then $objEmail.Bcc = $s_BccAddress
    $objEmail.Subject = $s_Subject
    If StringInStr($as_Body, "<") And StringInStr($as_Body, ">") Then
        $objEmail.HTMLBody = $as_Body
    Else
        $objEmail.Textbody = $as_Body & @CRLF
    EndIf
    If $s_AttachFiles <> "" Then
        Local $S_Files2Attach = StringSplit($s_AttachFiles, ";")
        For $x = 1 To $S_Files2Attach[0]
            $S_Files2Attach[$x] = _PathFull($S_Files2Attach[$x])
            ConsoleWrite('@@ Debug(62) : $S_Files2Attach = ' & $S_Files2Attach & @LF & '>Error code: ' & @error & @LF) ;### Debug Console
            If FileExists($S_Files2Attach[$x]) Then
                $objEmail.AddAttachment ($S_Files2Attach[$x])
            Else
                ConsoleWrite('!> File not found to attach: ' & $S_Files2Attach[$x] & @LF)
                SetError(1)
                Return 0
            EndIf
        Next
    EndIf
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserver") = $s_SmtpServer
    If Number($IPPort) = 0 then $IPPort = 25
    $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = $IPPort
    ;Authenticated SMTP
    If $s_Username <> "" Then
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendusername") = $s_Username
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/sendpassword") = $s_Password
    EndIf
    If $ssl Then
        $objEmail.Configuration.Fields.Item ("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
    EndIf
    ;Update settings
    $objEmail.Configuration.Fields.Update
    ; Set Email Importance
    Switch $s_Importance
        Case "High"
            $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "High"
        Case "Normal"
            $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Normal"
        Case "Low"
            $objEmail.Fields.Item ("urn:schemas:mailheader:Importance") = "Low"
    EndSwitch
    $objEmail.Fields.Update
    ; Sent the Message
    $objEmail.Send
    If @error Then
        SetError(2)
    EndIf
    $objEmail=""
EndFunc   ;==>_INetSmtpMailCom
Viel Spaß

Grüße Uwe
Bitte warten ..
Mitglied: askando
18.12.2013, aktualisiert um 17:25 Uhr
Hey!

@ Chris
Also die PDF und die zugehörige txt Datei haben den selben Namen, der jedoch bedingt durch Auftragsnummer variiert.

Beispielsweise:
NameStandort_Auftragsnummer.pdf (Anhang); NameStandort_Auftragsnummer.txt

Dies ist der Inhalt der Textdatei
::Name Empfänger, Faxnummer 
::A=Name der PDF (Anhang), fr=Absender Emailadresse#
@ Uwe
Vielen Dank! In der Zeile 9 wird quasi eine konstante Emailadresse zum versenden via smtp angegeben. Jedoch müsste ich genau an der Stelle einen Wert aus der zugehörigen txt. auslesen. Ebenso in der Zeile 10, dort müsste quasi die Faxnummer ausgelesen werden und @faxmaker.com dahinter hinzugefügt werden.
Bitte warten ..
Mitglied: colinardo
LÖSUNG 18.12.2013, aktualisiert um 17:27 Uhr
Zitat von askando:
@ Uwe
Vielen Dank! In der Zeile 9 wird quasi eine konstante Emailadresse zum versenden via smtp angegeben. Jedoch müsste ich genau
an der Stelle einen Wert aus der zugehörigen txt. auslesen. Ebenso in der Zeile 10, dort müsste quasi die Faxnummer
ausgelesen werden und @faxmaker.com dahinter hinzugefügt werden.
ist das der korrekt formatierte Inhalt deiner Textdatei?
::Name Empfänger, Faxnummer
::A=Name der PDF (Anhang), fr=Absender Emailadresse
bitte benutze Tags um das hier einzustellen, damit keine Sonderzeichen unterschlagen werden.
Bitte warten ..
Mitglied: askando
18.12.2013, aktualisiert um 17:37 Uhr
Ja Colinardo!

Genauso sehen die Inhalte der Textdateien aus!
Bitte warten ..
Mitglied: colinardo
LÖSUNG 18.12.2013, aktualisiert um 17:34 Uhr
Zitat von askando:
Genauso sehen die Inhalte der Textdateien aus!
OK ist oben im Script angepasst...
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Brauche hilf bei einer batch Datei
gelöst Frage von PilllllleBatch & Shell7 Kommentare

hallo, ich versuche mit Hilfe von einer batch- Datei eine bestimmt Zeile aus einer txt- Datei in eine neue ...

Entwicklung
Autoit Script datei als Email anhang
gelöst Frage von bfbertiEntwicklung5 Kommentare

Hallo. Ich habe folgendes Problem: Der Drucker bei uns auf arbeit das FAX TO MAIL wegen der SSL verschlüsselung ...

Entwicklung
Email per Batch Datei verschicken
Frage von UltraZzEntwicklung4 Kommentare

Ich möchte meine Freunde ein bisschen verarschen und habe schon eine Batch Datei erstellt wo sie etwas eingeben müssen. ...

Batch & Shell
Script zum XML Datei Umschreiben
Frage von cberndtBatch & Shell12 Kommentare

Guten Tag. Ich habe folgendes Problem. Ich habe eine XML Datei mit meinen Gutscheincodes sowie weiter Daten aus meiner ...

Neue Wissensbeiträge
Administrator.de Feedback

Entwicklertagebuch: Codeblöcke auf unseren Seiten

Information von admtech vor 9 StundenAdministrator.de Feedback3 Kommentare

Hallo Administrator User, Unsere Codeblöcke werden ab sofort anders dargestellt. Die Codeblöcke können nun direkt per Copy&Paste kopiert werden. ...

Humor (lol)
Internet - auch 2020 noch Neuland ?
Erfahrungsbericht von Henere vor 22 StundenHumor (lol)2 Kommentare

Heute eine Mail der Schule meiner Tochter bekommen. Blabla Umweltschutz bla bla siehe Anhang. Dumm nur: Da hab ich ...

Sicherheit
Diverse Sicherheitsprobleme aus dem Hause Intel
Tipp von DerWoWusste vor 2 TagenSicherheit

Unter anderem muss man mal wieder die Treiber für Intel HD Graphics updaten

Vmware

ESXi Management über PfSense (IPsec Tunnel) führt zu Massen an TCP Retransmissions

Tipp von Spirit-of-Eli vor 3 TagenVmware7 Kommentare

Moin zusammen, hier ein kurzer Beitrag zu einem Problem sobald man die Management Seite eines ESXs über einen IPsec ...

Heiß diskutierte Inhalte
Festplatten, SSD, Raid
Größe der Partition lässt sich nicht ändern mit gparted
Frage von achkleinFestplatten, SSD, Raid17 Kommentare

Hallo, ich habe eine 480GB auf eine 1TB-SSD geklont. Jetzt möchte ich den freien Speicherplatz per gparted an die ...

Sicherheit
Wie Kann Man eine IT-Notfallhandbuch erstellen für petasan
Frage von 142658Sicherheit14 Kommentare

Hallo Leute ich muss bald meine abschlussprojekt schreiben und brauch dringend hilfe wie man ein IT-Notfallhandbuch erstellen für Petasan(eine ...

Netzwerkmanagement
Werde dauernd aus dem WLAN geworfen (RouterOS)
gelöst Frage von amdkeksNetzwerkmanagement14 Kommentare

Hallo Zusammen, ich habe gestern ein update meiner Mikrotikgeräte gemacht und habe nun überall Version 6.45.5 drauf. Mikrotik Routerboard, ...

Windows Installation
Installation und Admin-Rechte
Frage von UserUWWindows Installation12 Kommentare

Annahme: UAC ist aktiv, der User ist "normaler" Benutzer. Eine Installation via setup.exe kann man in der Regel auf ...