From c52fce1b8dbadb07921c1fb09e9aaba0f99bc8ee Mon Sep 17 00:00:00 2001 From: Christopher Date: Wed, 1 Jul 2020 18:07:20 +0200 Subject: [PATCH] check with uuid --- src/MailKitMailModule.cs | 34 +++++++++++++++++++++++++++------- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/MailKitMailModule.cs b/src/MailKitMailModule.cs index 0aba495..9e82493 100644 --- a/src/MailKitMailModule.cs +++ b/src/MailKitMailModule.cs @@ -176,15 +176,29 @@ namespace OpenSim.Modules.EMail MimeMessage message = IMAPInbox.GetMessage(i); foreach (MailboxAddress adress in message.To.Mailboxes) { - m_log.Info("[" + Name + "] Message To: " + adress.Address); - m_log.Info("[" + Name + "] Objekt ID: " + adress.Address.Split('@')[0]); - SceneObjectPart sceneObject = m_scene.GetSceneObjectPart(adress.Address.Split('@')[0]); - - if (sceneObject != null) + try { - m_messages.Add(message); + m_log.Info("[" + Name + "] Message To: " + adress.Address); + m_log.Info("[" + Name + "] Objekt ID: " + adress.Address.Split('@')[0]); + + String UUIDString = adress.Address.Split('@')[0].Trim(); + + if(isUUID(UUIDString)) + { + UUID objID = UUID.Parse(UUIDString); + SceneObjectPart sceneObject = m_scene.GetSceneObjectPart(objID); + + if (sceneObject != null) + { + m_messages.Add(message); + IMAPInbox.SetFlags(i, MessageFlags.Deleted, true); + m_log.Info("[" + Name + "] Get Message for objekt " + sceneObject.Name + " (" + sceneObject.UUID + ")"); + } + } + }catch(Exception _innerEroor) + { + m_log.Error("[" + Name + "] " + _innerEroor.Message); IMAPInbox.SetFlags(i, MessageFlags.Deleted, true); - m_log.Info("[" + Name + "] Get Message for objekt " + sceneObject.Name + " (" + sceneObject.UUID + ")"); } } } @@ -275,5 +289,11 @@ namespace OpenSim.Modules.EMail return lslMessage; } + + public bool isUUID(string thing) + { + UUID test; + return UUID.TryParse(thing, out test) ? 1 : 0; + } } }