public static JsonNIMailConfirmation SendMail(NIServer niserver, string from, string subject, string body, params string[] recipients) { using (NIMessageClient nimc = new NIMessageClient(niserver)) { return(nimc.SendMail(from, subject, body, recipients)); } }
public NIMessageClient(NIServer niserver) { subscribtions = new List <string>(); string url = "ws:"; if (niserver.URL.Contains("//")) { url += niserver.URL.Substring(niserver.URL.IndexOf("//")); } else { url += "//" + niserver.URL; } url += "/nimessage/v1/websocket"; connectInterval = new Timer(10000); connectInterval.AutoReset = true; connectInterval.Elapsed += (s, e) => { Logger.Log("Reconnect...", this); websocket.Connect(); }; websocket = new WebSocket(url); websocket.SetCredentials(niserver.user, niserver.password, true); websocket.Compression = CompressionMethod.None; websocket.OnMessage += (s, e) => OnMessage?.Invoke(s, e); websocket.OnError += (s, e) => Logger.Error(e.Message, this); websocket.OnOpen += (s, e) => { Logger.Log("Opened connection", this); connectInterval.Stop(); Connected = true; //subscribe to all channels after reconnect foreach (string sub in subscribtions) { websocket.Send(JsonConvert.SerializeObject(new JsonNISubscribe(sub))); } }; websocket.OnClose += (s, e) => { Logger.Log("Closed: " + e.Reason, this); Connected = false; connectInterval.Start(); }; websocket.Connect(); }
public NITags(NIServer niserver) { Init(niserver.URL); NIAUTHHEADER = niserver.NIAUTHHEADER; }
public static JsonNIMailConfirmation SendMail(NIServer niserver, string from, string subject, string body, StringCollection recipients) { return(SendMail(niserver, from, subject, body, recipients.Cast <string>().ToArray())); }