diff --git a/src/MailKitMailModule.cs b/src/MailKitMailModule.cs index 98af4c8..cad3943 100644 --- a/src/MailKitMailModule.cs +++ b/src/MailKitMailModule.cs @@ -257,22 +257,37 @@ 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) + + if(sceneObject != null) + { + List messages = m_messages.FindAll(X => X.ID == objectID); + if (messages.Count == 0) + return null; + + if(messages[0] != null) + { + Email lslMessage = new Email(); + + lslMessage.time = messages[0].Mail.Date.ToUnixTimeSeconds().ToString(); + lslMessage.message = messages[0].Mail.TextBody.ToString(); + lslMessage.sender = messages[0].Mail.Sender.GetAddress(true); + lslMessage.subject = messages[0].Mail.Subject; + lslMessage.numLeft = messages.Count - 1; + + m_messages.Remove(messages[0]); + return lslMessage; + } + else + { + m_log.Error("[" + Name + "] Cant find caller objekt!"); + return null; + } + } + else + { + m_log.Error("[" + Name + "] Cant find caller objekt!"); return null; - - 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; - - m_messages.Remove(messages[0]); - - return lslMessage; + } } public bool isUUID(string thing)