Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Geburtstags-Mails an alle Mitarbeiter versenden

Anleitung Entwicklung Batch & Shell

Mitglied: Unwissender1

Unwissender1 (Level 1) - Jetzt verbinden

02.03.2013, aktualisiert 16:15 Uhr, 4919 Aufrufe, 7 Kommentare

Hallo,

wir wollten gerne in der Firma über aktuelle Geburtstage per E-Mail informiert werden.

Da es im Netz m.E. nichts so richtig brauchbares und kostenloses gab, hab ich einen kleinen Batch geschrieben. Dieser versendet am Geburtstag allen Mitarbeitern eine E-Mail als kleine Erinnerung. Zum Versenden wird das kostenlose Programm Blat verwendet (nur 3 Dateien, ohne Installation).

Der Batch sollte über die Aufgabenplanung / geplante Tasks täglich immer nachts nach 0 Uhr ausgeführt werden, so dass die Kollegen die E-Mail morgens im Postfach haben.

Hier der Code zur freien Verwendung für Jeden:

01.
:: ================================================================================= 
02.
:: Versendet Geburtstags-Mails an Mitarbeiter 
03.
:: 
04.
:: Neue Mitarbeiter müssen an 3 (!) Stellen eingefügt werden. 
05.
:: ================================================================================= 
06.
 
07.
:: (1) Hier Namen und Geburtstag definieren (Format einhalten!) 
08.
set Max_Mustermann=02.03. 
09.
set Mäxle_Musterfrau=15.05. 
10.
 
11.
:: Variablen für Datum definieren 
12.
set Tag=%date:~0,2% 
13.
set Monat=%date:~3,2% 
14.
set heute=%Tag%.%Monat%. 
15.
 
16.
:: (2) Mitarbeiter in Textdatei schreiben, wenn er Geburtstag hat 
17.
if %Max_Mustermann%==%heute% echo Max Mustermann (Vertriebsleiter) hat am %Max_Mustermann% Geburtstag. >> Geburtstage.txt 
18.
if %Mäxle_Musterfrau%==%heute% echo Mäxle Musterfrau (Verwaltung) hat am %Max_Musterfrau% Geburtstag. >> Geburtstage.txt 
19.
 
20.
:: Wartezeit 
21.
ping localhost 
22.
 
23.
if exist "Geburtstage.txt" goto :Senden 
24.
 
25.
:Ende_ohne_Senden 
26.
exit 
27.
 
28.
:Senden (3) 
29.
cd /d "C:\Geburtstagsmail\Blat" 
30.
Blat -install 192.168.xxx.xxx absender@domain.de 
31.
Blat "C:\Geburtstagsmail\Geburtstage.txt" ^ 
32.
-to empfänger1@domain.de,empfänger2@domain.de  ^ 
33.
-server 192.168.xxx.xxx -u benutzername -pw passwort ^ 
34.
-debug -timestamp -log "C:\Geburtstagsmail\Logdatei.txt" ^ 
35.
-subject "Heutige Geburtstage" 
36.
 
37.
:Löschen 
38.
del C:\Geburtstagsmail\Geburtstage.txt 
39.
 
40.
:Ende_nach_Senden 
41.
exit
Für Anregungen und Kritik bin ich gerne bereit. Beispielsweise eine zusätzliche E-Mail 3 Tage vor dem Geburtstag zu versenden.

Grüße
Thomas

Mitglied: bastla
02.03.2013 um 22:24 Uhr
Hallo Unwissender1!

Da Du als %heute% ja ohnehin Tag und Monat benötigst, kannst Du auch gleich
set "heute=%date:~,6%"
verwenden.
Neue Mitarbeiter müssen an 3 (!) Stellen eingefügt werden.
ist nicht sehr elegant - wenn Du als Alternative eine Textdatei "Mitarbeiterliste.txt" nach dem Muster
01.
02.03.;Max Mustermann;Vertriebsleiter 
02.
15.05.;Mäxle Musterfrau;Verwaltung
erstellst, kannst Du die Datei Geburtstage.txt etwa so erzeugen:
for /f "tokens=1-3 delims=;" %%a in ('findstr "%heute%;" "C:\Geburtstagsmail\Mitarbeiterliste.txt"') do >>C:\Geburtstagsmail\Geburtstage.txt echo %%b (%%c) hat am %%a Geburtstag.
Um die zusätzliche E-Mail 3 Tage vor dem Geburtstag versenden zu können, müsste das Datum von "heute in 3 Tagen" ermittelt werden, was in native Batch zwar möglich, aber mühsam (Monats- / Jahreswechsel, Schaltjahr berücksichtigen) ist - einfacher geht's mit einem kleinen VBScript ("Datumsermittlung.vbs") der Art
WScript.Echo DateAdd("d",3,Date)
- lässt sich auch leicht aus dem Batch heraus erzeugen mit
>"%temp%\Datumsermittlung.vbs" echo WScript.Echo DateAdd("d",3,Date)
- und dem Aufruf
for /f %%i in ('cscript //nologo "%temp%\Datumsermittlung.vbs"') do set "Datum=%%i"
Der Rest dann wie für %heute% ...

Grüße
bastla
Bitte warten ..
Mitglied: Unwissender1
03.03.2013, aktualisiert um 13:12 Uhr
Hallo bastla,

zwar hat mich die nicht sehr elegante Ausführung auch etwas gestört, jedoch wusste ich es einfach nicht besser. Die von Dir aufgezeigte Lösung finde ich sehr elegant, zumal die Pflege der Mitarbeiterliste nun fast jeder im Unternehmen machen kann.

Auch die Umsetzung mit der E-Mail 3 Tage vor dem Geburtstag hat einwandfrei geklappt.

Herzlichen Dank für Deine Mühe!

Grüße
Thomas
Bitte warten ..
Mitglied: wiesi200
03.03.2013 um 17:37 Uhr
Hallo,

alternativ könnte man sich Gedanken machen ob man das Activ Directory abfragt.

Ich persönlich greife die Lohnbuchhaltung ab da dort die Daten auch schon drinnen sind und schicke sie aber nur der Geschäftsleitung. Man sollte mit den Mitarbeitern auch klären ob ihnen das recht ist. Könnte ja sein das einer seinen Geburtstag nicht verraten will.
Bitte warten ..
Mitglied: Unwissender1
03.03.2013 um 19:09 Uhr
Hi,

da wir bisher noch kein AD einsetzen, entfällt diese Variante.
Die Lohnbuchhaltung setzt bei uns extern, daher kommt ich da so nicht ran.

Danke für den Hinweis bzgl. dem Persönlichkeitsrecht. Da wir jedoch eine recht kleine Firma sind, stellt dies m.E. kein Problem dar. Ich werde aber trotzdem kurz Rücksprache mit den Kollegen halten.

Gruß
Thomas
Bitte warten ..
Mitglied: wiesi200
03.03.2013 um 20:49 Uhr
Naja, ich wuerd sogar bei 5 Usern ein AD verwenden.
Bitte warten ..
Mitglied: Sylvia
11.03.2013 um 13:41 Uhr
Hallo,

ich möcht hier nur das Thema Datenschutz ansprechen - vorsicht beim Verteilen von Geburtstagen an alle Mitarbeiter, das kann Ärger geben. Es muss die Zustimmung derer eingeholt werden, deren Geburtstag verteilt wird...
Habe da schon einschlägige Erfahrungen gemacht...

Einfach nur als Info

Liebe Grüße
Sylvia
Bitte warten ..
Mitglied: Unwissender1
11.03.2013, aktualisiert um 17:39 Uhr
Hallo Sylvia,

danke auch nochmal an Dich für den Hinweis. Hatte zwischenzeitlich eine Info an alle Mitarbeiter geschrieben, dass die Geburtstage (ohne Geburtsjahr!) künftig alle versendet werden. Wer damit nicht einverstanden ist, wird vom Verteiler entfernt. Bisher hat sich noch niemand entfernen lassen.

Man muss dazu sagen, dass wir eine wirklich kleine Firma mit nur rund 10-15 Mitarbeitern sind und die Gepflogenheiten recht locker sind. Da sieht man diese Infomail es eher als Hilfe, statt als Diskriminierung o.ä. an.

Gruß
Thomas
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows 10
Skript zum Auslesen und Automatischen Versenden von E-Mails (3)

Frage von weber4134 zum Thema Windows 10 ...

Outlook & Mail
gelöst Outlook soll grundsätzlich nur HTML-Mails versenden (1)

Frage von Laufenfeuer zum Thema Outlook & Mail ...

Outlook & Mail
Outlook und das Versenden von E-Mails über ein Alias (7)

Frage von Estefania zum Thema Outlook & Mail ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...