diff --git a/src/MailKitMailModule.cs b/src/MailKitMailModule.cs index 5d34c78..6cf0ee6 100644 --- a/src/MailKitMailModule.cs +++ b/src/MailKitMailModule.cs @@ -259,9 +259,15 @@ namespace OpenSim.Modules.EMail if ((m_sending + 10) > _currentUnixTime) return; - m_sending = _currentUnixTime + 5; + List _messageToSend = new List(); - m_log.Info("[" + Name + "] Sending " + m_sendMessages.Count + " Mails."); + lock (m_sendMessages) + { + _messageToSend.AddRange(m_sendMessages); + m_sendMessages = new List(); + } + + m_log.Info("[" + Name + "] Sending " + _messageToSend.Count + " Mails."); try { @@ -286,21 +292,16 @@ namespace OpenSim.Modules.EMail if (SMTP_SERVER_LOGIN != String.Empty && SMTP_SERVER_PASSWORD != String.Empty) client.Authenticate(SMTP_SERVER_LOGIN, SMTP_SERVER_PASSWORD); - lock(m_sendMessages) + foreach (MimeMessage message in _messageToSend) { - foreach (MimeMessage message in m_sendMessages) + try { - try - { - client.Send(message); - } - catch (Exception _innerError) - { - m_log.Error("[" + Name + "] " + _innerError.Message); - } + client.Send(message); + } + catch (Exception _innerError) + { + m_log.Error("[" + Name + "] " + _innerError.Message); } - - m_sendMessages = new List(); } client.Disconnect(true);