diff --git a/App/EmailProfiler.Common/Data/EmailAttachment.vb b/App/EmailProfiler.Common/Data/EmailAttachment.vb
index e6b64f6..32092e8 100644
--- a/App/EmailProfiler.Common/Data/EmailAttachment.vb
+++ b/App/EmailProfiler.Common/Data/EmailAttachment.vb
@@ -8,9 +8,9 @@ Public Class EmailAttachment
Public FileStatus As GdPictureStatus = GdPictureStatus.OK
- Public IsValidExtension As Boolean = True
- Public SendInfoMailNecessary As Boolean = False
+ Public IsAttachmentValid As Boolean = True
Public ErrorCodeValue As ErrorCode = ErrorCode.Unknown
+ Public ErrorCodeComment As String = ""
Public EmbeddedFiles As List(Of EmailAttachment) = New List(Of EmailAttachment)
diff --git a/App/EmailProfiler.Common/EmailProfiler.Common.vbproj b/App/EmailProfiler.Common/EmailProfiler.Common.vbproj
index 848ac6f..7367dac 100644
--- a/App/EmailProfiler.Common/EmailProfiler.Common.vbproj
+++ b/App/EmailProfiler.Common/EmailProfiler.Common.vbproj
@@ -50,22 +50,22 @@
..\packages\AE.Net.Mail.1.7.10.0\lib\net45\AE.Net.Mail.dll
- ..\..\..\2_DLL Projekte\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll
+ ..\..\..\DDModules\Base\bin\Debug\DigitalData.Modules.Base.dll
- ..\..\..\2_DLL Projekte\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll
+ ..\..\..\DDModules\Database\bin\Debug\DigitalData.Modules.Database.dll
- ..\..\..\2_DLL Projekte\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll
+ ..\..\..\DDModules\Language\bin\Debug\DigitalData.Modules.Language.dll
- ..\..\..\2_DLL Projekte\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll
+ ..\..\..\DDModules\Logging\bin\Debug\DigitalData.Modules.Logging.dll
- ..\..\..\2_DLL Projekte\DDModules\Messaging\bin\Debug\DigitalData.Modules.Messaging.dll
+ ..\..\..\DDModules\Messaging\bin\Debug\DigitalData.Modules.Messaging.dll
- ..\..\..\2_DLL Projekte\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll
+ ..\..\..\DDModules\Patterns\bin\Debug\DigitalData.Modules.Patterns.dll
..\packages\GdPicture.14.2.90\lib\net462\GdPicture.NET.14.dll
diff --git a/App/EmailProfiler.Common/Enum/ErrorCode.vb b/App/EmailProfiler.Common/Enum/ErrorCode.vb
index 50409a3..e15a413 100644
--- a/App/EmailProfiler.Common/Enum/ErrorCode.vb
+++ b/App/EmailProfiler.Common/Enum/ErrorCode.vb
@@ -2,6 +2,6 @@
Unknown = 0
NoAttachments = 10001
SenderValidationFailed = 10002
- PDFStructureCorrupt = 10003
- FileExtensionNotValid = 10004
+ EmbeddedFileAttachmentCorrupt = 10003
+ NormalFileAttachmentCorrupt = 10004 ' Info Mail
End Enum
diff --git a/App/EmailProfiler.Common/clsWorkEmail.vb b/App/EmailProfiler.Common/clsWorkEmail.vb
index 3ec86b8..44c391c 100644
--- a/App/EmailProfiler.Common/clsWorkEmail.vb
+++ b/App/EmailProfiler.Common/clsWorkEmail.vb
@@ -227,12 +227,29 @@ Public Class clsWorkEmail
End If
' Jetzt werden die ggf gefundenen Attachment-Fehler überprüft und verarbeitet
- SendMailToSenderIfAttachmentsAreNotValid()
+ Dim oNormalAttachmentsNotValid As Boolean = False
+ Dim oEmbeddedAttachmentsNotValid As Boolean = False
+
+ oEmbeddedAttachmentsNotValid = EmailAttachments.
+ Where(Function(att) att.EmbeddedFiles.Count > 0).
+ Any(Function(emb) emb.EmbeddedFiles.Any(Function(ext) ext.IsAttachmentValid = False))
+
+ oNormalAttachmentsNotValid = EmailAttachments.Any(Function(ext) ext.IsAttachmentValid = False)
+
+ If oEmbeddedAttachmentsNotValid = True Then
+ SendRejectionMailToSenderIfEmbeddedAttachmentsAreNotValid()
+ ElseIf oNormalAttachmentsNotValid = True Then
+ SendInfoMailToSenderIfNormalAttachmentsAreNotValid()
+ End If
+
Return True
End If
End If
+ ' Wenn er bis hierin kommt, wird es schon gepasst haben
+ Return True
+
Catch ex As Exception
_Logger.Error(ex)
Return False
@@ -241,16 +258,32 @@ Public Class clsWorkEmail
'''
''' Wenn beim Herauslösen der Attachments festgestellt wurde,
- ''' das ein Teil der Attachments fehlerhaft war, wird der Absender hier
+ ''' das ein Teil der _normalen_ Attachments fehlerhaft war, wird der Absender hier
''' darüber informiert.
'''
- Private Sub SendMailToSenderIfAttachmentsAreNotValid()
+ Private Sub SendInfoMailToSenderIfNormalAttachmentsAreNotValid()
Dim oHtmlFilenameList As String = GetHtmlFilenameList()
If oHtmlFilenameList.IsNotNullOrEmpty() Then
- AddToEmailQueueMSSQL(CurrentMail.MessageId, "", "Attachment invalid", _EmailAccountID, _InfoTemplateId, ErrorCode.PDFStructureCorrupt, oHtmlFilenameList, "")
+ AddToEmailQueueMSSQL(CurrentMail.MessageId, "", "Attachment invalid", _EmailAccountID, _InfoTemplateId, ErrorCode.NormalFileAttachmentCorrupt, oHtmlFilenameList, "")
+
+ End If
+ End Sub
+
+ '''
+ ''' Wenn beim Herauslösen der Attachments festgestellt wurde,
+ ''' das ein Teil der _normalen_ Attachments fehlerhaft war, wird der Absender hier
+ ''' darüber informiert.
+ '''
+ Private Sub SendRejectionMailToSenderIfEmbeddedAttachmentsAreNotValid()
+
+ Dim oHtmlFilenameList As String = GetHtmlFilenameList()
+
+ If oHtmlFilenameList.IsNotNullOrEmpty() Then
+
+ AddToEmailQueueMSSQL(CurrentMail.MessageId, "", "Attachment invalid", _EmailAccountID, _RejectionTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oHtmlFilenameList, "")
End If
End Sub
@@ -261,14 +294,15 @@ Public Class clsWorkEmail
'''
Private Function GetHtmlFilenameList() As String
Dim filenameHtmlString As String = String.Empty
- Dim oComment As String = String.Empty
For Each attachmentItem In EmailAttachments
- If attachmentItem.SendInfoMailNecessary = True Then
+ Dim oEmbeddedAttachmentsInvalid As Boolean = False
+ oEmbeddedAttachmentsInvalid = attachmentItem.EmbeddedFiles.Any(Function(emb) emb.IsAttachmentValid = False)
- oComment = GetErrorCodeComment(attachmentItem.ErrorCodeValue)
- AddTrackingStatusMSSQL(CurrentMail.MessageId, attachmentItem.OrgFileName, "FILE CONSISTENCY NOT OK", oComment, "EMail Profiler")
+ If attachmentItem.IsAttachmentValid = False Or oEmbeddedAttachmentsInvalid = True Then
+
+ AddTrackingStatusMSSQL(CurrentMail.MessageId, attachmentItem.OrgFileName, "FILE CONSISTENCY NOT OK", attachmentItem.ErrorCodeComment, "EMail Profiler")
filenameHtmlString += "" + attachmentItem.OrgFileName + ""
End If
@@ -278,10 +312,9 @@ Public Class clsWorkEmail
If attachmentItem.EmbeddedFiles.Count > 0 Then
For Each embeddedItem In attachmentItem.EmbeddedFiles
- If embeddedItem.SendInfoMailNecessary = True Then
+ If embeddedItem.IsAttachmentValid = False Then
- oComment = GetErrorCodeComment(embeddedItem.ErrorCodeValue)
- AddTrackingStatusMSSQL(CurrentMail.MessageId, embeddedItem.OrgFileName, "EMBEDDED FILE CONSISTENCY NOT OK", oComment, "EMail Profiler")
+ AddTrackingStatusMSSQL(CurrentMail.MessageId, embeddedItem.OrgFileName, "EMBEDDED FILE CONSISTENCY NOT OK", embeddedItem.ErrorCodeComment, "EMail Profiler")
embeddedFilenamesHtmlString += "" + embeddedItem.OrgFileName + ""
End If
@@ -305,19 +338,6 @@ Public Class clsWorkEmail
Return filenameHtmlString
End Function
- Private Function GetErrorCodeComment(errorCodeValue As ErrorCode) As String
-
- Dim retValue As String = String.Empty
-
- If errorCodeValue = ErrorCode.FileExtensionNotValid Then
- retValue = "File Extension not valid"
- ElseIf errorCodeValue = ErrorCode.PDFStructureCorrupt Then
- retValue = "PDF Structure corrupt"
- End If
-
- Return retValue
- End Function
-
'''
''' Method to decide wether we use the old or the new
''' Rejection E-mail method.
@@ -927,6 +947,7 @@ Public Class clsWorkEmail
EmailAttachments.Add(oEmailAttachment)
If ValidateFileExtension(oEmailAttachment) = False Then
+ oEmailAttachment.ErrorCodeValue = ErrorCode.NormalFileAttachmentCorrupt
Continue For
End If
@@ -969,8 +990,9 @@ Public Class clsWorkEmail
oAttachmentCount -= 1
CleanUpFilePath(oEmailAttachment.DestFilePath)
oEmailAttachment.FileStatus = oStatus
- oEmailAttachment.ErrorCodeValue = ErrorCode.PDFStructureCorrupt
- oEmailAttachment.SendInfoMailNecessary = True
+ oEmailAttachment.ErrorCodeValue = ErrorCode.NormalFileAttachmentCorrupt
+ oEmailAttachment.ErrorCodeComment = "PDF Structure corrupt"
+ oEmailAttachment.IsAttachmentValid = False
MESSAGE_ERROR = True
Continue For
@@ -1014,6 +1036,7 @@ Public Class clsWorkEmail
oEmbeddedFile.FileStatus = pGDPicturePDF.GetStat()
If oEmbeddedFile.FileStatus = GdPictureStatus.OK Then
If ValidateFileExtension(oEmbeddedFile) = False Then
+ oEmbeddedFile.ErrorCodeValue = ErrorCode.EmbeddedFileAttachmentCorrupt
Continue For
End If
@@ -1024,8 +1047,9 @@ Public Class clsWorkEmail
oEmbeddedFile.FileStatus = status
If status <> GdPictureStatus.OK Or FileSize = 0 Then
- oEmbeddedFile.ErrorCodeValue = ErrorCode.PDFStructureCorrupt
- oEmbeddedFile.SendInfoMailNecessary = True
+ oEmbeddedFile.ErrorCodeValue = ErrorCode.EmbeddedFileAttachmentCorrupt
+ oEmbeddedFile.ErrorCodeComment = "PDF Structure corrupt"
+ oEmbeddedFile.IsAttachmentValid = False
Continue For
End If
End If
@@ -1094,11 +1118,10 @@ Public Class clsWorkEmail
Dim oIsGraphicExtension = _GraphicExtensions.Any(Function(ext) lowerFilename.EndsWith(ext))
If oIsValidExtension = False Then
- pAttachmentData.IsValidExtension = False
If oIsGraphicExtension = False Then
_Logger.Warn("File has no valid extension, and it has no graphic extension. In this case we have to inform the sender!")
- pAttachmentData.SendInfoMailNecessary = True
- pAttachmentData.ErrorCodeValue = ErrorCode.FileExtensionNotValid
+ pAttachmentData.IsAttachmentValid = False
+ pAttachmentData.ErrorCodeComment = "File Extension not valid"
End If
Return False
@@ -1107,6 +1130,9 @@ Public Class clsWorkEmail
Return True
End Function
+ '''
+ ''' Diese Funktion wird nicht mehr verwendet!!!!
+ '''
Private Function EXTRACT_ATTACHMENTS(pCurrentMail As MailContainer, pExtractPath As String, pErrorPath As String)
_Logger.Debug("In EXTRACT_ATTACHMENTS...")
@@ -1133,7 +1159,7 @@ Public Class clsWorkEmail
Dim oInfo = $"Consistency or extension of attached file {oATTFilename} is not ok."
AddTrackingStatusMSSQL(CurrentMail.MessageId, oInfo, "PDF CONSISTENCY NOT OK", "Info GUI", "EML_PROF_EXTR_ATT1")
AddToEmailQueueMSSQL(CurrentMail.MessageId, oInfo, "PDF CONSISTENCY NOT OK", _EmailAccountID,
- _InfoTemplateId, ErrorCode.PDFStructureCorrupt, oATTFilename, "")
+ _InfoTemplateId, ErrorCode.NormalFileAttachmentCorrupt, oATTFilename, "")
End If
Continue For
@@ -1185,7 +1211,7 @@ Public Class clsWorkEmail
Dim oResult = $"PDF-Consistency of attached file {oATTFilename} is not ok. ({oStatus.ToString})"
AddTrackingStatusMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY NOT OK", "Info GUI", "EML_PROF_EXTR_ATT2")
AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY NOT OK", _EmailAccountID,
- _InfoTemplateId, ErrorCode.PDFStructureCorrupt, oATTFilename, "")
+ _InfoTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oATTFilename, "")
File.Delete(oAttachmentFilePath)
Continue For
Else
@@ -1206,7 +1232,7 @@ Public Class clsWorkEmail
Dim oInfo = $"Consistency or extension of attached file [{oEmbAttName}] is not ok."
AddTrackingStatusMSSQL(CurrentMail.MessageId, oInfo, "Extension invalid", "Info GUI", "EML_PROF_EXTR_ATT3")
AddToEmailQueueMSSQL(CurrentMail.MessageId, oInfo, "Extension invalid", _EmailAccountID,
- _InfoTemplateId, ErrorCode.PDFStructureCorrupt, oEmbAttName, "")
+ _InfoTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oEmbAttName, "")
End If
Continue For
End If
@@ -1219,7 +1245,7 @@ Public Class clsWorkEmail
Dim oResult = $"Consistency or PDF-State of embedded file [{oEmbAttName}] is not ok."
AddTrackingStatusMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY EMBEDDED FILE NOT OK", "Info GUI", "EML_PROF_EXTR_ATT4")
AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "PDF CONSISTENCY EMBEDDED FILE NOT OK", _EmailAccountID,
- _InfoTemplateId, ErrorCode.PDFStructureCorrupt, oEmbAttName, "")
+ _InfoTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oEmbAttName, "")
Continue For
End If
End If
@@ -1242,7 +1268,7 @@ Public Class clsWorkEmail
Dim oResult = $"Consistency of attached file [{oAttachment.SafeFileName}] is not ok."
AddTrackingStatusMSSQL(CurrentMail.MessageId, oResult, "CONSISTENCY ATTACHED FILE NOT OK", "Info GUI", "EML_PROF_EXTR_ATT5")
AddToEmailQueueMSSQL(CurrentMail.MessageId, oResult, "CONSISTENCY ATTACHED FILE NOT OK", _EmailAccountID,
- _InfoTemplateId, ErrorCode.PDFStructureCorrupt, oAttachment.SafeFileName, "")
+ _InfoTemplateId, ErrorCode.EmbeddedFileAttachmentCorrupt, oAttachment.SafeFileName, "")
Try
File.Delete(oAttachmentFilePath)
Catch ex As Exception