*******************************************************************************
*      ___ _____     ____    ____  _   _ ____ ___ _   _ _____ ____ ____  
*     |_ _|_   _|   / __ \  | __ )| | | / ___|_ _| \ | | ____/ ___/ ___| 
*      | |  | |    / / _` | |  _ \| | | \___ \| ||  \| |  _| \___ \___ \ 
*      | |  | |   | | (_| | | |_) | |_| |___) | || |\  | |___ ___) |__) |
*     |___| |_|    \ \__,_| |____/ \___/|____/___|_| \_|_____|____/____/ 
*                   \____/                                               
*
*
*  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 Konfigurationsoberfläche muss eine Verknüpfung zu Azure hergestellt werden. Über den Button "Mit Azure verknüpfen" wird eine App in Azure angelegt.
	Der Port zum Empfangen der E-Mails kann über das Port-Feld eingetragen werden.
	In der Whitelist müssen die IPs eingetragen werden, die für die Weiterleitung von E-Mails erlaubt sind. 

	Anmerkung: Die Graph-API unterstützt nur Anhänge, die kleiner als 150 MB sind.

	Ältere Logeinträge, die nicht älter als 10 Tage sind, findet man unter: C:\ProgramData\it@business\SmtpEmailService\logs
	Logeinträge des heutigen Tages kann man über die Konfigurationsoberfläche einsehen.

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

	Name des Windowsdienstes:  ITB - SmtpEmailRelayService


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

2.0.34 (24.03.2025)

	-	ReadData() ergänzt. 

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 Speicherüberlauf geführt hat verbessert. Im Log werden wieder alle Ausgaben angezeigt.

2.0.19 (05.06.2024)

	-	Neue Read() Funktion. Soll Speicherüberlauf verhinder.

2.0.18 (17.05.2024)

	-	Der Upload von Anhängen 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 erhöt. Beim erreichen wird eine Fehler ausgelöst. 

2.0.14 (05.03.2024)

	-	Benachrichtigung wenn Sicherheitsschlüssel 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 für Readcount hinzugefügt. 

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 können jetzt mit Suffix angegeben werden zB: "192.168.2.7/24"

2.0.7 (22.12.2023)

	- Fehler behoben. Jobs die mehreren Emails enthalten können 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 können wieder über das Protokoll übermittelt werden.
	- Fehler behoben, der nicht das gewünschte Resultat ergeben hat, wenn der Fehler ApplicationThrottled aufkam.
	- BCCs werden jetzt korrekt versendet. 

2.0.1 (22.11.2023)

	- Beim anlegen der Verknüpfung zu Azure kann zwischen Singel- und Multiapplikation gewählt werden.
	- Es können 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 gelöschte E-Mails verursacht wurde.
	- Fehler behoben: Alle Sockets schließen jetzt nach Empfang ordnungsmäßig. 

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, können an eine E-Mail-Adresse weitergeleitet werden.
	- E-Mails werden nicht mehr gelöscht, 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 berücksichtigt.

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 für HTML Content

1.1.27 (24.02.2022)

	- Zusätzlichen 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 gelöscht 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 befüllt.
	- 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 Empfänger 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 gelöscht. 

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)

	- Größere Anhänge sind jetzt möglich. 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: Anhänge wurden abgeschnitten. Server empfängt nun alle Datenpakete. 
	  Anmerkung: Die Graph API unterstützt nur Anhänge die kleiner 3MB sind.

1.1.5 (06.07.2021)

	- Fehler behoben: leere cc's und bcc's haben zum Absturz geführt.
	- Fehler behoben: Auf Systemen mit US Kultur wird die Logdatei auch im korrekten dadumsformat angelegt.
	- Die Konfiguration bleibt beim drücken von 'OK' offen und schliest sich bei betätigen 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 Emailempfängers 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 hinzugefügt.
	- Log kann jetzt über die Konfig eingesehen werden.
	- Dienst startet sich von alleine neu beim beenden. 
	- Lizenz hinzugefügt.
	- Über das Produkt hinzugefügt.

1.0.8 (15.06.2021)

	- Erste beta.

1.0.1 (14.06.2021): 

    - Erste Version mit installer.
