From 0da86a4ad4e162c24f77eaacbc7e15c6071067e5 Mon Sep 17 00:00:00 2001 From: Christopher Date: Wed, 1 Jul 2020 18:21:50 +0200 Subject: [PATCH] return Email --- src/MailKitMailModule.cs | 42 ++++++++++++---------------------------- 1 file changed, 12 insertions(+), 30 deletions(-) diff --git a/src/MailKitMailModule.cs b/src/MailKitMailModule.cs index 3987ae6..a2fea20 100644 --- a/src/MailKitMailModule.cs +++ b/src/MailKitMailModule.cs @@ -35,7 +35,7 @@ namespace OpenSim.Modules.EMail private Timer m_timer = null; - private List m_messages = new List(); + private List m_messages = new List(); private String SMTP_SERVER_HOSTNAME = null; private String SMTP_SERVER_LOGIN = null; @@ -257,38 +257,20 @@ namespace OpenSim.Modules.EMail public Email GetNextEmail(UUID objectID, string sender, string subject) { SceneObjectPart sceneObject = m_scene.GetSceneObjectPart(objectID); - m_log.Info("[" + Name + "] GetNextEmail: " + sceneObject.Name + " (" + sceneObject.UUID + ")"); + + List messages = m_messages.FindAll(X => X.ID == objectID); + if (messages.Count == 0) + return null; - List messages = m_messages.FindAll(X => X.Subject.Contains(subject) && X.Sender.GetAddress(true).Contains(sender)); + Email lslMessage = new Email(); + lslMessage.time = messages[0].Mail.Date.ToUnixTimeSeconds().ToString(); + lslMessage.message = messages[0].Mail.Body.ToString(); + lslMessage.sender = messages[0].Mail.Sender.GetAddress(true); + lslMessage.subject = messages[0].Mail.Subject; + lslMessage.numLeft = messages.Count - 1; - MimeMessage lastMessage = null; - Email lslMessage = null; - - foreach (MimeMessage message in messages) - { - if (lslMessage != null) - continue; - - lastMessage = message; - - foreach (MailboxAddress adress in message.To.Mailboxes) - { - if (lslMessage != null) - continue; - - lslMessage = new Email(); - lslMessage.time = lastMessage.Date.ToUnixTimeSeconds().ToString(); - lslMessage.message = lastMessage.Body.ToString(); - lslMessage.sender = lastMessage.Sender.GetAddress(true); - lslMessage.subject = lastMessage.Subject; - - lslMessage.numLeft = messages.Count - 1; - } - } - - if(lastMessage != null) - m_messages.Remove(lastMessage); + m_messages.Remove(messages[0]); return lslMessage; }