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

Mailing via blat aus verschiedenen Ordnern

Mitglied: hoffi3d

hoffi3d (Level 1) - Jetzt verbinden

25.04.2014 um 07:54 Uhr, 876 Aufrufe, 3 Kommentare

Guten Morgen,

ich habe folgendes anliegen. Ich möchte ein Mailing via Blat.exe (http://www.blat.net/) erstellen.

Ausgangslage ist folgende, ich habe in einem Ordner eine .txt Datei für den Betreff, eine für die Empfänger und eine für die .bcc´s!
Dann möchte ich Unterordner anlegen die z.B. Verkauf, Controlling etc. heissen in diesen Liegen dann x Dateien die an den Empfängerkreis für eben diesen Ordner versandt werden!


Ordner Versand mit Betreff.txt, to_empfaenger.txt, bcc_empfaenger.txt
=> Unterordner Controlling mit x Dateien
=> Unterordner Verkauf mit x Dateien


Nun ist es so, das ich dieses Gerüst schon "starr" hinbekommen habe. Ich hätte es aber gerne flexibel also dass der Nutzer sich neue Unterordner anlegen kann und das System diese dann einfach ausliest! Natürlich muss der Nutzer auch Betreff/Empfänger und BCC ergänzen....!

Meine .bat sieht derzeit wie folgt aus(ich weiß sicher nicht optimal....)

Eingangs ziehe ich meine Variablen zu großen Teilen aus einer config.txt


01.
@Echo off 
02.
Mode con cols=150 lines=50 
03.
Set Beginn=%time% 
04.
set config=D:\CMD_BAT\versand\config.txt 
05.
 
06.
for /f "delims== tokens=1,2" %%i in ('findstr "blat_exe" %config%') do set blat=%%j 
07.
for /f "delims== tokens=1,2" %%i in ('findstr "mailserver" %config%') do set server=%%j 
08.
for /f "delims== tokens=1,2" %%i in ('findstr "absender" %config%') do set sender=%%j 
09.
for /f "delims== tokens=1,2" %%i in ('findstr "workdir" %config%') do set workdir=%%j 
10.
for /f "delims== tokens=1,2" %%i in ('findstr "absender" %config%') do set absender=%%j 
11.
for /f "delims== tokens=1,2" %%i in ('findstr "logdir" %config%') do set logdir=%%j 
12.
set logdir=%workdir%%logdir% 
13.
for /f "delims== tokens=1,2" %%i in ('findstr "mail_to_datei" %config%') do set mail_to_datei=%%j 
14.
set mail_to_datei=%workdir%%mail_to_datei% 
15.
for /f "delims== tokens=1,2" %%i in ('findstr "mail_bcc_datei" %config%') do set mail_bcc_datei=%%j 
16.
set mail_bcc_datei=%workdir%%mail_bcc_datei% 
17.
for /f "delims== tokens=1,2" %%i in ('findstr "temp_datei" %config%') do set temp=%%j 
18.
set temp=%workdir%%temp% 
19.
for /f "delims== tokens=1,2" %%i in ('findstr "mail_log_datei" %config%') do set mail_log_datei=%%j 
20.
set mail=%logdir%%date%%mail_log_datei% 
21.
for /f "delims== tokens=1,2" %%i in ('findstr "topicdatei" %config%') do set topicdatei=%%j 
22.
set topicdatei=%workdir%%topicdatei% 
23.
for /f "delims== tokens=1,2" %%i in ('findstr "ordnerdatei" %config%') do set ordnerdatei=%%j 
24.
set ordnerdatei=%workdir%%ordnerdatei% 
25.
for /f "delims== tokens=1,2" %%i in ('findstr "body" %config%') do set body=%%j 
26.
 
27.
set name1=Controlling 
28.
set name2=Verkauf 
29.
 
30.
 
31.
set ordner1=%workdir%%name1% 
32.
set ordner2=%workdir%%name2% 
33.
 
34.
 
35.
for /f "delims== tokens=1,2" %%i in ('findstr "%name1%" %mail_to_datei%') do set to1=%%j 
36.
for /f "delims== tokens=1,2" %%i in ('findstr "%name2%" %mail_to_datei%') do set to2=%%j 
37.
 
38.
for /f "delims== tokens=1,2" %%i in ('findstr "%name1%" %mail_bcc_datei%') do set bcc1=%%j 
39.
for /f "delims== tokens=1,2" %%i in ('findstr "%name2%" %mail_bcc_datei%') do set bcc2=%%j 
40.
 
41.
set /P tag_entladung=Bitte Auswertungstag fuer %name1% eingeben:  
42.
 
43.
set /P tag_tageskennzahlen=Bitte Auswertungstag fuer %name2% eingeben:  
44.
 
45.
set Versandordner=%ordner1% 
46.
set to=%to1% 
47.
set bcc=%bcc1% 
48.
set Topic=%Name1% 
49.
set anhang= 
50.
 
51.
 
52.
dir /b %versandordner% > %temp% 
53.
 
54.
 
55.
for /f %%x in (%temp%) do set anhang=!anhang!,%versandordner%\%%x  
56.
set anhang=%anhang:~1% 
57.
set anhang=%anhang: =% 
58.
 
59.
%blat% -body "%body%"   -server %server% -to %to% -bcc %bcc% -f %sender% -s "%topic%" -attach %Anhang% >> %mail% 
60.
 
61.
 
62.
set Versandordner=%ordner2% 
63.
set to=%to2% 
64.
set bcc=%bcc2% 
65.
set Topic=%Name2% - %tag_entladung% 
66.
set anhang= 
67.
 
68.
dir /b %versandordner% > %temp% 
69.
 
70.
 
71.
for /f %%x in (%temp%) do set anhang=!anhang!,%versandordner%\%%x  
72.
set anhang=%anhang:~1% 
73.
set anhang=%anhang: =% 
74.
 
75.
%blat% -body "%body%"   -server %server% -to %to% -bcc %bcc% -f %sender% -s "%topic%" -attach %Anhang% >> %mail%
Vielen Dank vorrab!
Mitglied: bastla
25.04.2014 um 10:55 Uhr
Hallo hoffi3d!

Ganz allgemein: Um alle Unterordner eines Ordners durchzugehen kannst Du
01.
for /d %%u in (*) do ( 
02.
    echo Unterordner: %%u 
03.
    dir /s/b "%%u" 
04.
)
verwenden.

Wenn es für Dich einfacher ist, kannst Du auch in jeden dieser Ordner hineinwechseln, sodass Du dann keine Pfade zu berücksichtigen hast:
01.
for /d %%u in (*) do ( 
02.
    echo Unterordner: %%u 
03.
    pushd "%%u" 
04.
    dir /b 
05.
    popd 
06.
)
Ansonsten noch 2 Hinweise:
  • Das Verwenden von %temp% für einen Dateinamen ist suboptimal, da Du so die entsprechende Systemvariable überschreibst.
  • Jetzt die gute Nachricht: Wenn Du keinen anderen Grund für die Verwendung einer solchen Datei hast, als dort die Dateinamen der Anhänge zwischenzuspeichern, kannst Du sie gleich einsparen - es genügt in diesem Fall
for /f "delims=" %%x in ('dir /b "%versandordner%"') do set "anhang=!anhang!,%versandordner%\%%x"
Grüße
bastla
Bitte warten ..
Mitglied: hoffi3d
25.04.2014 um 12:35 Uhr
Hallo Bastla,

die Unterordner auslesen lassen bekomme ich inzwischen hin(wenn auch etwas anders).
Nur hapert es an der "Schleife" die mir die Empfänger, die Topics, die BCCs und die Anhänge zusammenschreibt und auch mail, ich habe ka wie ich diese zusammensetze:

Um die Unterordner mit Namen auslesen zu lassen:
01.
dir /ad /b %workdir% > %ordnerdatei%
Müsste ja jetzt für jeden Unterordner die Dateien auslesen und nach den zugehörigen Empfängern + BCC´s suchen!

Nur wie am besten?
Bitte warten ..
Mitglied: bastla
25.04.2014, aktualisiert um 16:10 Uhr
Hallo hoffi3d!
Müsste ja jetzt für jeden Unterordner die Dateien auslesen und nach den zugehörigen Empfängern + BCC´s suchen!
So what? Was für einen Ordner geht, geht auch für viele - und wie schon oben angeführt, kannst Du ja mit
01.
for /d %%u in (*) do ( 
02.
    pushd "%%u" 
03.
    echo Jetzt ist der Unterordner "!cd!" aktuell und alle Dateien sind ohne Pfadangabe erreichbar 
04.
    popd 
05.
)
vorübergehend in jeden der Unterordner wechseln und die dort liegenden Dateien verarbeiten ...

GGf verwendest Du eben für jeden Unterordner eine eigene "config.txt".

Zur Konfigurationsdatei auch noch eine Anmerkung: Wenn Du Variablen sinnvoll benennst, also etwa
%Mail_blat%
%Mail_sender%
%Mail_workdir%
kannst Du eine Konfigurationsdatei ganz einfach mit
set Mail_>config.txt
erstellen und die Variablen wieder mit
for /f "delims=" %%i in (config.txt) do set "%%i"
einlesen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Hosting & Housing

Weg von einem Anbieter Webhosting und Mailing

Frage von Ramsys1991Hosting & Housing9 Kommentare

Moin Leute, ich habe meine Unternehmens Seite aktuell bei einem Anbieter gehostet mit dem ich nicht zufrieden bin. Nun ...

Batch & Shell

Eine Batch zum Sortieren verschiedener Dateien in Ordner

gelöst Frage von JaglagBatch & Shell16 Kommentare

Hallo, da ich leider mit Batch und shell nicht so erfahren bin hoffe das ein findiger User hier weiterhelfen ...

Batch & Shell

Compress Archieve verschiedener Ordner mit PowerShell

gelöst Frage von FRANHEBatch & Shell2 Kommentare

Hallo zusammen, ich habe folgendes Problem und wäre wirklich dankbar für eure Hilfe:-) Vor mir liegt eine Ordnerstruktur, die ...

Batch & Shell

Wie kann ich eine Mail über Blat versenden mit Batch

gelöst Frage von Dreamkiller112Batch & Shell8 Kommentare

Hallo, Hey ich benötige drigend Hilfe ich habe das Problem ich möchte eine Batch-Datei erstellen mit der ich eine ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Windows Netzwerk
WSUS4 und Windows 10 Updates automatisch installieren
Frage von sammy65Windows Netzwerk15 Kommentare

Hallo miteinander, ich habe mit einen neuen WSUS Server aufgesetzt Server 2016 darauf einen aktuellen WSUS. Grund, wir stellen ...

Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Hyper-V
Hyper-V mit altem XEON-Server. Was ist falsch?
Frage von LollipopHyper-V11 Kommentare

Hallo Bin etwas frustriert. Kleinbetrieb, ca. 15 PC's, 2 Stk. Server mit einigen virtuellen PC's für Fernwartung, VaultServer für ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...