Frage von legaga1208, 46

Visual Studio C# Email nach bestimmter Zeit versenden?

Hey :) Ich habe vor mir ein Programm zu schreiben (C#, Visual Studio 2015) welches mich nach einer selber ausgewählten Zeit an bestimmte Dinge erinnert. Dazu soll es mir eine Email schicken an dem Tag an dem das Ereignis stattfindet. Das mit dem Email schicken und so klappt auch alles ganz gut. Ich verstehe nur nicht wie ich die Email nach einer bestimmten Zeit (z.B nach 4 Tagen usw.) verschicken kann, wenn das überhaupt möglich ist. Danke schon mal im voraus!

Antwort
von Unsinkable2, 24

Der einfachste Weg ist es, einen sogenannten "Windows Service" zu basteln. Das ist ein Programm, das im Regelfall keine Benutzer-Oberfläche hat, sondern im Hintergrund ausgeführt wird, sobald der Rechner läuft.

Den Zeitversatz kannst du auf unterschiedlichste Weise lösen. 

Beispielsweise kannst du deine Termine einfach in Outlook eintragen und mit dem Windows Service auslesen. Je nach Vorgabe, die du im Termin festgelegt hast (dort ist es die "Erinnerung"), kann dir dein Service dann eine Email zum festgelegten Erinnerungszeitpunkt schicken. Damit hättest du eine sehr einfache und komfortable Verwaltung deiner Erinnerungen erreicht.

Allerdings ginge mein Beispiel auch ganz ohne Programmierung. Du legst einfach den Termin in Outlook an und ...

a) wenn du ein Windows-Handy (oder anderes Windows-Zielgerät) hast: ... synchronisierst einfach dein Outlook mit dem Handy. Dann hast du den Termin auch auf dem Handy.

b) wenn du kein Windows-Handy (oder anderes Nicht-Windows-Zielgerät) hast:  ... leitest ihn an dein Postfach weiter. Diese Weiterleitung verzögerst du bis zum Erinnerungszeitpunkt. Dann bekommst du als Erinnerung eine Email mit dem Termin.

Kommentar von legaga1208 ,

Erstmal danke für deine Antwort! :)

Und ja ich weiß das es auch andere Wege gibt sich an etwas erinnern zu lassen. Allerdings will ich das machen als Übung. Wie mache ich das mit dem Windows Service? Ist das auch über C#? Und wie kann ich die Termine aus Outlook auslesen lassen?

Kommentar von Unsinkable2 ,

Zu diesem Zweck habe ich dir zwei blaue Texte mitgegeben. Wenn du da draufzeigst, wirst du feststellen, dass es sich um Links handelt. 

Und sobald du sie anklickst, bekommst du detaillierte Informationen, wie man so einen Windows Service bastelt, und wie man Outlook-Termine auslesen kann.

Antwort
von TanteHolger, 24

Möglich ist alles ;)

Einfachster Weg:
Weise dem Event einfach eine Zeit zu zu dem es ausgeführt werden soll und lasse einen Timer laufen der nach Event->Time sucht und bei true dieses dann ausführt.

Gruß: Holger

Kommentar von legaga1208 ,

Ist es dann nicht so das wenn ich z.B bei der Zeit 20 Tage einstellen würde, dass der Pc bzw das Programm dann die vollen 20 Tage am Stück laufen müsste? Oder kann man das Programm auch schließen und es läuft dann im Hintergrund weiter? 

Kommentar von TanteHolger ,

Das Programm muss schon laufen, sonst kann es den Job ja nicht ausführen.

Keine passende Antwort gefunden?

Fragen Sie die Community