*******************************************************************************
*      ___ _____     ____    ____  _   _ ____ ___ _   _ _____ ____ ____  
*     |_ _|_   _|   / __ \  | __ )| | | / ___|_ _| \ | | ____/ ___/ ___| 
*      | |  | |    / / _` | |  _ \| | | \___ \| ||  \| |  _| \___ \___ \ 
*      | |  | |   | | (_| | | |_) | |_| |___) | || |\  | |___ ___) |__) |
*     |___| |_|    \ \__,_| |____/ \___/|____/___|_| \_|_____|____/____/ 
*                   \____/                                               
*
*
*  Erstellt am		    : 09.03.2020
*
*  Programm			    : ITBSmtpViaGraphAPI
*
*  Version			    : 2.0.34 (24.03.2025)
*
*******************************************************************************

Allgemein:
======================

-	SMTP Relay Service. Nimmt E-Mails entgegen und sendet sie ber die Microsoft Graph Schnittstelle weiter.

	ber die Konfigurationsoberflche muss eine Verknpfung zu Azure hergestellt werden. ber den Button "Mit Azure verknpfen" wird eine App in Azure angelegt.
	Der Port zum Empfangen der E-Mails kann ber das Port-Feld eingetragen werden.
	In der Whitelist mssen die IPs eingetragen werden, die fr die Weiterleitung von E-Mails erlaubt sind. 

	Anmerkung: Die Graph-API untersttzt nur Anhnge, die kleiner als 150MB sind.

	ltere Logeintrge, die nicht lter als 10 Tage sind, findet man unter: C:\ProgramData\it@business\SmtpEmailService\logs
	Logeintrge des heutigen Tages kann man ber die Konfigurationsoberflche einsehen.

	AzureAppName: ITB-SmtpEmailRelayService
	Applikationsrechte: Mail.Send, User.Read.All

	Name des Windowsdienstes: ITB - SmtpEmailRelayService


ChangeLog:
==========

2.0.34 (24.03.2025)

	-	ReadData() ergnzt. 

2.0.30 (05.12.2024)

	-	Log verschlankt und einheitlich auf Englisch.
	-	Bei Fehlern wie UnknownError, itemNotFound, ErrorItemNotFound, generalException, tooManyRetries wird das Senden wiederholt. 

2.0.29 (13.11.2024)

	-	MimeReader Fehler wird abgefangen. 

2.0.27 (21.06.2024)

	-	Fehler in ApplicationIsThrottled behoben.

2.0.25 (17.06.2024)

	-	TcpState wieder entfernt. Zuviele ltere Systeme verwenden den falschen Status. 

2.0.24 (13.06.2024)

	-	TcpState wird nur bei einer nderung in den Log eingetragen. 

2.0.23 (12.06.2024)

	-	Ist bei einem Lesevorgang TcpState nicht etabliert. Wird versucht darauf zu warten.

2.0.22 (10.06.2024)

	-	Delay beim Datenempfang falls keine Daten beim Server ankommen. Verwendung von TcpState zur Abfrage des Verbindungsstatus. 

2.0.21 (07.06.2024)

	-	Verbindung wird nach mehrmaligen leseversuche abgebrochen (Timeout). 

2.0.20 (06.06.2024)

	-	Anhang Fehlerbehandlung die zu Speicherberlauf gefhrt hat verbessert. Im Log werden wieder alle Ausgaben angezeigt.

2.0.19 (05.06.2024)

	-	Neue Read() Funktion. Soll Speicherberlauf verhinder.

2.0.18 (17.05.2024)

	-	Der Upload von Anhngen wird bis zu 20x wiederholt bevor abgebrochen wird. 

2.0.17 (16.05.2024)

	-	200ms warten nach erstellen der E-Mail. Damit der Server Zeit hat den POST zu verarbeiten. 

2.0.16 (10.04.2024)

	-	Nach jedem E-Mail Empfang wird 10ms gewartet, damit eine Doppelvergebung der JobID verhindert wird. 

2.0.15 (05.04.2024)

	-	Readcount auf 100 erht. Beim erreichen wird eine Fehler ausgelst. 

2.0.14 (05.03.2024)

	-	Benachrichtigung wenn Sicherheitsschlssel 14 Tage vor ablauf ist.

2.0.13 (04.03.2024)

	-	Bugfix von Readcount. 

2.0.12 (04.03.2024)

    - Fehler von Readcount behoben.

2.0.11 (04.03.2024)

	- Debugausgabe fr Readcount hinzugefgt. 

2.0.10 (23.02.2024)

	- ReadCount bei mail input.

2.0.9 (13.02.2024)

	- In die Windows-Ereignisanzeige werden nur noch Errors erfasst. 

2.0.8 (07.02.2024)

	- IPs knnen jetzt mit Suffix angegeben werden zB: "192.168.2.7/24"

2.0.7 (22.12.2023)

	- Fehler behoben. Jobs die mehreren Emails enthalten knnen jetzt einzeln versand werden.

2.0.6 (18.12.2023)

	- Fehler behoben der Read() immer wieder aufgerufen hat.

2.0.5 (13.12.2023)

	- Fehler behoben: Sockets werden bei einem Neustart korrekt freigegeben.  

2.0.4 (06.12.2023)

	- Wenn keine Daten empfagen werden wird die Mail ignoriert.

2.0.3 (06.12.2023)

	- Fehler behoben: Dateien sind jetzt beim abholen Threadsicher. 

2.0.2 (05.12.2023)

	- From & To knnen wieder ber das Protokoll bermittelt werden.
	- Fehler behoben, der nicht das gewnschte Resultat ergeben hat, wenn der Fehler ApplicationThrottled aufkam.
	- BCCs werden jetzt korrekt versendet. 

2.0.1 (22.11.2023)

	- Beim anlegen der Verknpfung zu Azure kann zwischen Singel- und Multiapplikation gewhlt werden.
	- Es knnen bis zu 10 Applikationen erstellt werden. 

1.1.39 (26.10.2023)

	- Fehler E-Mails werden auch beim Empfangen versendet.
	- Fehler behoben: Der durch Zugriff auf gelschte E-Mails verursacht wurde.
	- Fehler behoben: Alle Sockets schlieen jetzt nach Empfang ordnungsmig. 

1.1.38 (17.10.2023)

	- Mehrere Applikationen werden verwendet um E-Mails zu versenden. 

1.1.37 (05.10.2023)

	- E-Mails werden jetzt im Verzeichnis 'send' zwischengespeichert. 

1.1.36 (19.09.2023)

	- E-Mails, die einen Fehler erzeugen, knnen an eine E-Mail-Adresse weitergeleitet werden.
	- E-Mails werden nicht mehr gelscht, sondern in das /err Verzeichnis kopiert. 

1.1.35 (13.07.2023)

	- Errorhandling in Write u. Read verbessert.

1.1.34 (25.10.2022)

	- 2x senden von OK verhindern. 

1.1.33 (19.10.2022)

	- IsAttachment wird im MessagePart jetzt bercksichtigt.

1.1.32 (10.10.2022)

	- Fehler behoben: '.' am Ende der Email wird nicht mehr angezeigt.

1.1.31 (25.08.2022)

	- Standard UTF-8 Encoder wird verwendet. 

1.1.30 (25.08.2022)

	- HTML Bodys werden bevorzugt. 

1.1.29 (29.07.2022)

	- Errorhandling verbessert. 

1.1.28 (08.03.2022)

	- MimeReader auch fr HTML Content

1.1.27 (24.02.2022)

	- Zustzlichen MimeReader integriert.
	- Benutzer wird jetzt auch mit dem Alias gefunden. 

1.1.26 (15.02.2022)

	- In der Konfiguration kann nun eingeschalten werden dass Emails nicht gelscht werden.
	- Im Log wird die JobId mit ausgegeben ber die die Mail gemapt werden kann. 	

1.1.25 (16.12.2021)

	- Falls From und Body in der eml nicht vorhanden sind, werden sie alternativ mit dem Empfang befllt.
	- Server reagirt jetzt auch auf lowcase befehle. 

1.1.24 (16.12.2021)

	- Server wartet bei einem Fehler auf weitere Kommandos.

1.1.23 (07.12.2021)

	- Falls kein Empfnger in der Email. Wird die vom Empfang genommen. 

1.1.21 (07.12.2021)

	- Bei einem Fehler wird mit 550 geantwortet. 
	- Fehlerhafte Emails bleiben bis zum Neustart bestehen. 
	- Log zeigt die Uhrzeit immer an. 

1.1.20 (02.12.2021)

	- Server wartet jetzt auf QUIT bevor er sich beendet. 

1.1.19 (01.12.2021)

	- Error emls werden jetzt beim starten gelscht. 

1.1.18 (26.11.2021)

	- Beim beenden antwortet der Server jetzt mit Bye anstatt BYE

1.1.17 (10.11.2021)

	- Update des MsgReader Packets auf 4.2.2

1.1.16 (16.09.2021)

	- Fehler behoben der bertragung mit "221 unknown command" beendet hat.

1.1.15 (10.09.2021)

	- Die buff.eml wird jetzt mit einer guid abgespeichert.

1.1.14 (27.08.2021)

	- Kleinere Fehler behoben.

1.1.13 (26.08.2021)

	- Grere Anhnge sind jetzt mglich. Bis zu 150MB.

1.1.12 (17.08.2021)

	- Server reagiert jetzt auf NOOP

1.1.11 (02.08.2021)

	- Fehler behoben: HTML wurde nicht richtig dargestellt.

1.1.10 (16.07.2021)

	- Fehler behoben. Meherer Emails von der gleichen Quelle wurden nicht weitergeleitet. 

1.1.9 (08.07.2021)

	- Es werden nur noch Benutzer mit der passenden Email abgerufen. 

1.1.8 (08.07.2021)

	- Wenn Service gestoppt ist kommt keine Fehlermeldung mehr -> Service wird gestartet. 
	- Wenn IP nicht in der Whiteliste ist antwortet der Service mit: 221 IP nicht in Whiteliste.
	- Fehler behoben: Service reagiert jetzt auch auf HELO.

1.1.7 (07.07.2021)

	- Fehler behoben: Anhnge wurden abgeschnitten. Server empfngt nun alle Datenpakete. 
	  Anmerkung: Die Graph API untersttzt nur Anhnge die kleiner 3MB sind.

1.1.5 (06.07.2021)

	- Fehler behoben: leere cc's und bcc's haben zum Absturz gefhrt.
	- Fehler behoben: Auf Systemen mit US Kultur wird die Logdatei auch im korrekten dadumsformat angelegt.
	- Die Konfiguration bleibt beim drcken von 'OK' offen und schliest sich bei bettigen von 'bernehmen'.

1.1.2 (01.07.2021)

	- Fehler behoben der die TCP Verbindung nicht beendet hat. 

1.1.1 (25.06.2021)

	- Erster Release

1.0.15 (24.06.2021)

	- nderung des Produktnamens von SmtpEmailRelay zu ITBSmtpViaGraphAPI.

1.0.14 (22.06.2021)

	- Fehlerbehandlung des Emailempfngers erweitert. 

1.0.12 (17.06.2021)

	- Fehler beim Installer behoben. 

1.0.11 (16.06.2021)

	- Log wird jetzt beim starten der Konfig richtig angezeigt. 

1.0.10 (16.06.2021)

	- Updater hinzugefgt.
	- Log kann jetzt ber die Konfig eingesehen werden.
	- Dienst startet sich von alleine neu beim beenden. 
	- Lizenz hinzugefgt.
	- ber das Produkt hinzugefgt.

1.0.8 (15.06.2021)

	- Erste beta.

1.0.1 (14.06.2021): 

    - Erste Version mit installer.
