diff --git a/DDMonorepo.sln b/DDMonorepo.sln
index 21c291ff..82a562e3 100644
--- a/DDMonorepo.sln
+++ b/DDMonorepo.sln
@@ -138,6 +138,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Config.Test", "Config.Test\
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "DBCleaner", "DBCleaner\DBCleaner.vbproj", "{5A7913CE-7D3D-4E84-B23D-4747C178CD71}"
EndProject
+Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Mailfunctions", "Mailfunctions\Mailfunctions.vbproj", "{C9827B8D-9EF9-411A-A6BF-4807794F8C8F}"
+EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
@@ -368,6 +370,10 @@ Global
{5A7913CE-7D3D-4E84-B23D-4747C178CD71}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5A7913CE-7D3D-4E84-B23D-4747C178CD71}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5A7913CE-7D3D-4E84-B23D-4747C178CD71}.Release|Any CPU.Build.0 = Release|Any CPU
+ {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+ {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}.Debug|Any CPU.Build.0 = Debug|Any CPU
+ {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}.Release|Any CPU.ActiveCfg = Release|Any CPU
+ {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
@@ -429,6 +435,7 @@ Global
{8A8F20FC-C46E-41AC-BEE7-218366CFFF99} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
{B9A63193-1391-4E20-B578-0867F330396C} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
{5A7913CE-7D3D-4E84-B23D-4747C178CD71} = {CC368D6A-6AC4-4EB9-A092-14700FABEF7A}
+ {C9827B8D-9EF9-411A-A6BF-4807794F8C8F} = {3E2008C8-27B1-41DD-9B1A-0C4029F6AECC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C1BE4090-A0FD-48AF-86CB-39099D14B286}
diff --git a/Mailfunctions/Mail.vb b/Mailfunctions/Mail.vb
new file mode 100644
index 00000000..a9d612fa
--- /dev/null
+++ b/Mailfunctions/Mail.vb
@@ -0,0 +1,13 @@
+Imports DigitalData.Modules.Logging
+Public Class Mail
+ Private LogConfig As LogConfig
+ Private Logger As DigitalData.Modules.Logging.Logger
+ Public Sub New(LogConfig As LogConfig)
+ LogConfig = LogConfig
+ Logger = LogConfig.GetLogger()
+ Logger.Info("MailingClass initialized")
+ End Sub
+ Public Function Connecttest()
+
+ End Function
+End Class
diff --git a/Mailfunctions/Mailfunctions.vbproj b/Mailfunctions/Mailfunctions.vbproj
new file mode 100644
index 00000000..6e56ce83
--- /dev/null
+++ b/Mailfunctions/Mailfunctions.vbproj
@@ -0,0 +1,120 @@
+
+
+
+
+ Debug
+ AnyCPU
+ {C9827B8D-9EF9-411A-A6BF-4807794F8C8F}
+ Library
+ Mailfunctions
+ Mailfunctions
+ 512
+ Windows
+ v4.7.2
+ true
+
+
+ true
+ full
+ true
+ true
+ bin\Debug\
+ Mailfunctions.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ pdbonly
+ false
+ true
+ true
+ bin\Release\
+ Mailfunctions.xml
+ 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022
+
+
+ On
+
+
+ Binary
+
+
+ Off
+
+
+ On
+
+
+
+ ..\Modules.Logging\bin\Debug\DigitalData.Modules.Logging.dll
+
+
+ P:\Visual Studio Projekte\Bibliotheken\Limilabs\Mail.dll\Mail.dll
+
+
+
+ ..\packages\NLog.4.7.11\lib\net45\NLog.dll
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ True
+ Application.myapp
+
+
+ True
+ True
+ Resources.resx
+
+
+ True
+ Settings.settings
+ True
+
+
+
+
+ VbMyResourcesResXFileCodeGenerator
+ Resources.Designer.vb
+ My.Resources
+ Designer
+
+
+
+
+ MyApplicationCodeGenerator
+ Application.Designer.vb
+
+
+ SettingsSingleFileGenerator
+ My
+ Settings.Designer.vb
+
+
+
+
+
\ No newline at end of file
diff --git a/Mailfunctions/My Project/Application.Designer.vb b/Mailfunctions/My Project/Application.Designer.vb
new file mode 100644
index 00000000..88dd01c7
--- /dev/null
+++ b/Mailfunctions/My Project/Application.Designer.vb
@@ -0,0 +1,13 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
diff --git a/Mailfunctions/My Project/Application.myapp b/Mailfunctions/My Project/Application.myapp
new file mode 100644
index 00000000..758895de
--- /dev/null
+++ b/Mailfunctions/My Project/Application.myapp
@@ -0,0 +1,10 @@
+
+
+ false
+ false
+ 0
+ true
+ 0
+ 1
+ true
+
diff --git a/Mailfunctions/My Project/AssemblyInfo.vb b/Mailfunctions/My Project/AssemblyInfo.vb
new file mode 100644
index 00000000..0d865ee5
--- /dev/null
+++ b/Mailfunctions/My Project/AssemblyInfo.vb
@@ -0,0 +1,35 @@
+Imports System
+Imports System.Reflection
+Imports System.Runtime.InteropServices
+
+' Allgemeine Informationen über eine Assembly werden über die folgenden
+' Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
+' die einer Assembly zugeordnet sind.
+
+' Werte der Assemblyattribute überprüfen
+
+
+
+
+
+
+
+
+
+
+'Die folgende GUID wird für die typelib-ID verwendet, wenn dieses Projekt für COM verfügbar gemacht wird.
+
+
+' Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
+'
+' Hauptversion
+' Nebenversion
+' Buildnummer
+' Revision
+'
+' Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
+' indem Sie "*" wie unten gezeigt eingeben:
+'
+
+
+
diff --git a/Mailfunctions/My Project/Resources.Designer.vb b/Mailfunctions/My Project/Resources.Designer.vb
new file mode 100644
index 00000000..702d170b
--- /dev/null
+++ b/Mailfunctions/My Project/Resources.Designer.vb
@@ -0,0 +1,62 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My.Resources
+
+ 'This class was auto-generated by the StronglyTypedResourceBuilder
+ 'class via a tool like ResGen or Visual Studio.
+ 'To add or remove a member, edit your .ResX file then rerun ResGen
+ 'with the /str option, or rebuild your VS project.
+ '''
+ ''' A strongly-typed resource class, for looking up localized strings, etc.
+ '''
+ _
+ Friend Module Resources
+
+ Private resourceMan As Global.System.Resources.ResourceManager
+
+ Private resourceCulture As Global.System.Globalization.CultureInfo
+
+ '''
+ ''' Returns the cached ResourceManager instance used by this class.
+ '''
+ _
+ Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
+ Get
+ If Object.ReferenceEquals(resourceMan, Nothing) Then
+ Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("Mailfunctions.Resources", GetType(Resources).Assembly)
+ resourceMan = temp
+ End If
+ Return resourceMan
+ End Get
+ End Property
+
+ '''
+ ''' Overrides the current thread's CurrentUICulture property for all
+ ''' resource lookups using this strongly typed resource class.
+ '''
+ _
+ Friend Property Culture() As Global.System.Globalization.CultureInfo
+ Get
+ Return resourceCulture
+ End Get
+ Set(ByVal value As Global.System.Globalization.CultureInfo)
+ resourceCulture = value
+ End Set
+ End Property
+ End Module
+End Namespace
diff --git a/Mailfunctions/My Project/Resources.resx b/Mailfunctions/My Project/Resources.resx
new file mode 100644
index 00000000..af7dbebb
--- /dev/null
+++ b/Mailfunctions/My Project/Resources.resx
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
\ No newline at end of file
diff --git a/Mailfunctions/My Project/Settings.Designer.vb b/Mailfunctions/My Project/Settings.Designer.vb
new file mode 100644
index 00000000..fd3119d4
--- /dev/null
+++ b/Mailfunctions/My Project/Settings.Designer.vb
@@ -0,0 +1,73 @@
+'------------------------------------------------------------------------------
+'
+' This code was generated by a tool.
+' Runtime Version:4.0.30319.42000
+'
+' Changes to this file may cause incorrect behavior and will be lost if
+' the code is regenerated.
+'
+'------------------------------------------------------------------------------
+
+Option Strict On
+Option Explicit On
+
+
+Namespace My
+
+ _
+ Partial Friend NotInheritable Class MySettings
+ Inherits Global.System.Configuration.ApplicationSettingsBase
+
+ Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
+
+#Region "My.Settings Auto-Save Functionality"
+#If _MyType = "WindowsForms" Then
+ Private Shared addedHandler As Boolean
+
+ Private Shared addedHandlerLockObject As New Object
+
+ _
+ Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
+ If My.Application.SaveMySettingsOnExit Then
+ My.Settings.Save()
+ End If
+ End Sub
+#End If
+#End Region
+
+ Public Shared ReadOnly Property [Default]() As MySettings
+ Get
+
+#If _MyType = "WindowsForms" Then
+ If Not addedHandler Then
+ SyncLock addedHandlerLockObject
+ If Not addedHandler Then
+ AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
+ addedHandler = True
+ End If
+ End SyncLock
+ End If
+#End If
+ Return defaultInstance
+ End Get
+ End Property
+ End Class
+End Namespace
+
+Namespace My
+
+ _
+ Friend Module MySettingsProperty
+
+ _
+ Friend ReadOnly Property Settings() As Global.Mailfunctions.My.MySettings
+ Get
+ Return Global.Mailfunctions.My.MySettings.Default
+ End Get
+ End Property
+ End Module
+End Namespace
diff --git a/Mailfunctions/My Project/Settings.settings b/Mailfunctions/My Project/Settings.settings
new file mode 100644
index 00000000..85b890b3
--- /dev/null
+++ b/Mailfunctions/My Project/Settings.settings
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/Mailfunctions/packages.config b/Mailfunctions/packages.config
new file mode 100644
index 00000000..25ba1cdf
--- /dev/null
+++ b/Mailfunctions/packages.config
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/Modules.Messaging/Limilab.vb b/Modules.Messaging/Limilab.vb
new file mode 100644
index 00000000..c9f9b310
--- /dev/null
+++ b/Modules.Messaging/Limilab.vb
@@ -0,0 +1,149 @@
+Imports DigitalData.Modules.Logging
+Imports Limilabs.Mail
+Imports Limilabs.Client.IMAP
+Imports Limilabs.Client
+Imports System.Net.Security
+Imports System
+Imports System.Security.Authentication
+
+Public Class Limilab
+ Private Initialized As Boolean = False
+ Private LogConfig As LogConfig
+ Private Logger As DigitalData.Modules.Logging.Logger
+ Private IMAPServer As String
+ Private IMAPPort As Integer
+ Private User As String
+ Private Password As String
+ Private AuthType As String
+ Private ImapObject As Imap
+ Public Sub New(LogConfig As LogConfig)
+ LogConfig = LogConfig
+ Logger = LogConfig.GetLogger()
+ Logger.Info("Limilab initialized")
+ End Sub
+ Public Sub InitIMAP(oImapServer As String, oPort As Integer, oUser As String, oPassword As String, oAuthType As String, Optional Folder As String = "Inbox")
+ IMAPServer = oImapServer
+ IMAPPort = oPort
+ User = oUser
+ Password = oPassword
+ AuthType = oAuthType
+ Initialized = True
+ End Sub
+ '''
+ ''' Tests connection to a given IMAP Server by connecting and doing a simple message query.
+ '''
+ ''' IP-Address or Domainname of Server
+ ''' IMAP-Port
+ ''' IMAP-Username
+ ''' IMAP-Password
+ ''' The folder to fetch messages from. Defaults to `Inbox`
+ ''' True if connection and query were successful. False otherwise.
+ Public Function IMAPTestLogin() As Boolean
+ Logger.Debug("Testing Login to Server {0}:{1} with user {2}", IMAPServer, IMAPPort, User)
+ If Initialized = False Then
+ Return False
+ End If
+ Try
+ Logger.Debug("Connecting...")
+ Dim oReturn As Boolean = ImapConnect()
+ If oReturn = True Then
+ ImapObject.Close()
+ End If
+ Return oReturn
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+ End Try
+ End Function
+ Private Function ImapConnect() As Boolean
+ Try
+ If Initialized = False Then
+ Return True
+ End If
+ Dim oReturnImap As New Imap()
+
+ If AuthType.EndsWith("TLS") Then
+ oReturnImap.SSLConfiguration.EnabledSslProtocols = SslProtocols.Tls12
+ ' we will use custom validation
+ AddHandler oReturnImap.ServerCertificateValidate, AddressOf Validate
+ Logger.Debug("Connecting to IMAP-Server without port...")
+ oReturnImap.Connect(IMAPServer)
+
+ ElseIf AuthType = "SSL" Then
+ ' we will use custom validation
+ AddHandler oReturnImap.ServerCertificateValidate, AddressOf Validate
+ Logger.Debug($"Connecting to IMAP-Server with port {IMAPPort}...")
+ oReturnImap.ConnectSSL(IMAPServer, IMAPPort)
+ ElseIf AuthType = "Simple" Then
+
+ End If
+ Logger.Debug(">> Connected to IMAP-Server!")
+ Dim oSupportsStartTLS As Boolean = oReturnImap.SupportedExtensions() _
+ .Contains(ImapExtension.StartTLS)
+ If oSupportsStartTLS And AuthType.EndsWith("TLS") Then
+ Logger.Debug("Server supports StartTLS, so starting...")
+ oReturnImap.StartTLS()
+ End If
+ Logger.Debug("Login with User and password...")
+ oReturnImap.UseBestLogin(User, Password)
+ Logger.Debug(">> Logged on!")
+ ImapObject = oReturnImap
+ Return True
+ Catch ex As Exception
+ Logger.Error(ex)
+ If Not IsNothing(ex.InnerException) Then
+ Logger.Warn("Inner Exception ImapConnect: " + ex.InnerException.Message)
+ End If
+
+
+ Return False
+ End Try
+ End Function
+ Private Sub Validate(
+ ByVal sender As Object,
+ ByVal e As ServerCertificateValidateEventArgs)
+
+ Const ignoredErrors As SslPolicyErrors =
+ SslPolicyErrors.RemoteCertificateChainErrors Or _ ' self-signed
+ SslPolicyErrors.RemoteCertificateNameMismatch ' name mismatch
+
+ Dim nameOnCertificate As String = e.Certificate.Subject
+
+ If (e.SslPolicyErrors And Not ignoredErrors) = SslPolicyErrors.None Then
+ e.IsValid = True
+ Return
+ End If
+ e.IsValid = False
+ End Sub
+ Public Function ImapGetMessageIDs() As List(Of Long)
+ Dim oListuids As New List(Of Long)
+ Try
+ ImapObject.SelectInbox()
+
+ oListuids = ImapObject.Search(Flag.Unseen)
+
+ Return oListuids
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return oListuids
+ End Try
+
+ End Function
+
+ Public Function GetMessageUids(oImapServer As String, oPort As Integer, oUser As String, oPassword As String, oSSL As Boolean)
+ Try
+
+ Catch ex As Exception
+
+ End Try
+ End Function
+ Public Function DeleteMessageByUID(oUID As String) As Boolean
+ Try
+ ImapObject.DeleteMessageByUID(oUID)
+ Return True
+ Catch ex As Exception
+ Logger.Error(ex)
+ Return False
+ End Try
+ End Function
+End Class
diff --git a/Modules.Messaging/Messaging.vbproj b/Modules.Messaging/Messaging.vbproj
index b7c5547f..ce04c28a 100644
--- a/Modules.Messaging/Messaging.vbproj
+++ b/Modules.Messaging/Messaging.vbproj
@@ -85,6 +85,7 @@
+
True
diff --git a/Modules.Messaging/My Project/AssemblyInfo.vb b/Modules.Messaging/My Project/AssemblyInfo.vb
index b5d7ee94..ceedd89a 100644
--- a/Modules.Messaging/My Project/AssemblyInfo.vb
+++ b/Modules.Messaging/My Project/AssemblyInfo.vb
@@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
'
-
-
+
+
diff --git a/Service.JobRunner/My Project/Settings.Designer.vb b/Service.JobRunner/My Project/Settings.Designer.vb
index 4ed5c023..188bdcb7 100644
--- a/Service.JobRunner/My Project/Settings.Designer.vb
+++ b/Service.JobRunner/My Project/Settings.Designer.vb
@@ -15,7 +15,7 @@ Option Explicit On
Namespace My
_
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
@@ -117,10 +117,19 @@ Namespace My
End Get
End Property
+ _
+ Public ReadOnly Property GRAPHQL_CONFIG() As String
+ Get
+ Return CType(Me("GRAPHQL_CONFIG"),String)
+ End Get
+ End Property
+
_
+ "AMACCOUNTNAME)),GroupFilter::(&(samaccountname=*))")> _
Public ReadOnly Property ADSYNC_CONFIG() As String
Get
Return CType(Me("ADSYNC_CONFIG"),String)
@@ -129,21 +138,12 @@ Namespace My
_
+ Global.System.Configuration.DefaultSettingValueAttribute("False|10/0 * * * * ?|Foo::Bar")> _
Public ReadOnly Property TEST_CONFIG() As String
Get
Return CType(Me("TEST_CONFIG"),String)
End Get
End Property
-
- _
- Public ReadOnly Property GRAPHQL_CONFIG() As String
- Get
- Return CType(Me("GRAPHQL_CONFIG"),String)
- End Get
- End Property
End Class
End Namespace