diff --git a/src/MailKitMailModule.cs b/src/MailKitMailModule.cs index aaeb1f3..767d184 100644 --- a/src/MailKitMailModule.cs +++ b/src/MailKitMailModule.cs @@ -1,14 +1,115 @@ using MimeKit; +using Mono.Addins; +using Nini.Config; +using OpenMetaverse; +using OpenSim.Region.Framework.Interfaces; +using OpenSim.Region.Framework.Scenes; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; +[assembly: Addin("MailKitMailModule", "0.1")] +[assembly: AddinDependency("OpenSim.Region.Framework", OpenSim.VersionInfo.VersionNumber)] namespace OpenSim.Modules.EMail { - class MailKitMailModule + [Extension(Path = "/OpenSim/RegionModules", NodeName = "RegionModule", Id = "MailKitMailModule")] + class MailKitMailModule : INonSharedRegionModule, IEmailModule { + private IConfigSource m_config = null; + private bool m_enabled = false; + private Scene m_scene = null; + + private String SMTP_SERVER_HOSTNAME = null; + private String SMTP_SERVER_LOGIN = null; + private String SMTP_SERVER_PASSWORD = null; + private String SMTP_SERVER_SENDER = null; + private int SMTP_SERVER_PORT = 25; + private bool SMTP_SERVER_ENCRYPTION = false; + + private String IMAP_SERVER_HOSTNAME = null; + private String IMAP_SERVER_LOGIN = null; + private String IMAP_SERVER_PASSWORD = null; + private int IMAP_SERVER_PORT = 25; + private bool IMAP_SERVER_ENCRYPTION = false; + + #region ISharedRegionModule + public string Name + { + get { return "MailKitMailModule"; } + } + + public Type ReplaceableInterface + { + get { return null; } + } + + public void AddRegion(Scene scene) + { + if (!m_enabled) + return; + + scene.RegisterModuleInterface(this); + m_scene = scene; + } + + public void Close() + { + throw new NotImplementedException(); + } + + public void Initialise(IConfigSource source) + { + m_config = source; + + if(source.Configs["Startup"] != null) + { + m_enabled = (m_config.Configs["Startup"].GetString("emailmodule", "DefaultEmailModule") == "MailKitMailModule"); + + if (!m_enabled) + return; + } + + if (source.Configs["Mail"] == null) + return; + + SMTP_SERVER_HOSTNAME = m_config.Configs["Mail"].GetString("SMTP_SERVER_HOSTNAME", "127.0.0.1"); + SMTP_SERVER_PORT = m_config.Configs["Mail"].GetInt("SMTP_SERVER_PORT", 25); + SMTP_SERVER_ENCRYPTION = m_config.Configs["Mail"].GetBoolean("SMTP_SERVER_ENCRYPTION", false); + SMTP_SERVER_LOGIN = m_config.Configs["Mail"].GetString("SMTP_SERVER_LOGIN", "lsl@localhost"); + SMTP_SERVER_PASSWORD = m_config.Configs["Mail"].GetString("SMTP_SERVER_PASSWORD", ""); + SMTP_SERVER_SENDER = m_config.Configs["Mail"].GetString("SMTP_SERVER_SENDER", ""); + + IMAP_SERVER_HOSTNAME = m_config.Configs["Mail"].GetString("IMAP_SERVER_HOSTNAME", "127.0.0.1"); + IMAP_SERVER_PORT = m_config.Configs["Mail"].GetInt("IMAP_SERVER_PORT", 25); + IMAP_SERVER_ENCRYPTION = m_config.Configs["Mail"].GetBoolean("IMAP_SERVER_ENCRYPTION", false); + IMAP_SERVER_LOGIN = m_config.Configs["Mail"].GetString("IMAP_SERVER_LOGIN", "lsl@localhost"); + IMAP_SERVER_PASSWORD = m_config.Configs["Mail"].GetString("IMAP_SERVER_PASSWORD", ""); + } + + public void PostInitialise() + { + } + + public void RegionLoaded(Scene scene) + { + } + + public void RemoveRegion(Scene scene) + { + } + #endregion + + + public void SendEmail(UUID objectID, string address, string subject, string body) + { + } + + public Email GetNextEmail(UUID objectID, string sender, string subject) + { + + } } }