private void TextMessageRequestHandler(TextMessageRequest request) { var encryptionkey = clientPublicEncryptionkeys[request.SenderClient]; request.Message = UtilityFunction.DecryptString(request.Message, encryptionkey.FirstX, encryptionkey.U, encryptionkey.SelectChoas); OnTextMessageReceived(request, request.Message); }
/// <summary> /// Send a text message to the remote client. /// </summary> /// <param name="message"></param> public void SendTextMessage(String message) { TextMessageRequest request = new TextMessageRequest(); request.Message = message; SendMessage(request); }
protected virtual void OnTextMessageReceived(TextMessageRequest request, String txt) { if (TextMessageReceived != null) { TextMessageReceived(this, request, txt); } }
public override void Test_ToJson() { var msg = new TextMessageRequest(); msg.Content = "hello world"; OutputJson(msg); }
/// <summary> /// Send a text message to the remote client. /// </summary> /// <param name="message"></param> public void SendTextMessage(String message, String clientName) { checkReceiver(clientName); var encryptionkey = clientPublicEncryptionkeys[clientName]; TextMessageRequest request = new TextMessageRequest(); request.ReceiverClient = clientName; request.Message = UtilityFunction.EncryptString(message, encryptionkey.FirstX, encryptionkey.U, encryptionkey.SelectChoas); SendMessage(request); }
public void Test_RemindUser() { var msg = new TextMessageRequest(); msg.Content = "广州今日天气:29度,大部分多云,降雨概率:60%"; msg.Add("wangqing", "13800001111"); msg.AddPhoneWithAll(); msg.AddUserWithAll(); OutputJson(msg); }
public async Task <IActionResult> SendTextMessage([FromRoute] Guid id, [FromBody] TextMessageRequest request) { var response = await _messageManager.SendTextMessageAsync(request, id, GetUserId()); if (response.Error != null) { return(StatusCode(response.Error.ErrorCode, response)); } return(Ok(response)); }
public async Task Test_SendTextAsync() { var msg = new TextMessageRequest(); msg.Content = "hello world"; OutputRequest(msg); var resp = await Provider.SendAsync(AppId, msg); OutputResponse(resp); }
public Task <MessageResponse> Processed(TextMessageRequest request) { MessageResponse response = new TextMessageResponse { ToUserName = request.ToUserName, FormUserName = request.FormUserName, CreateTime = request.CreateTime, Content = "回复" }; return(Task.FromResult(response)); }
private void btnSendMessage_Click(object sender, RoutedEventArgs e) { if (_channelCollection.Count <= 0) { MessageBox.Show("No channel!"); } try { TextMessageRequest textMsg = new TextMessageRequest(); textMsg._msg = "test"; // tbSendText.Text; textMsg._targetID = 20; // (uint)int.Parse(tbTargetID.Text); OptionCode messageOpcode = new OptionCode(); //if (cboxCallType.SelectedIndex == 0) //{ // //发送呼叫消息,均需要回复。 // messageOpcode = OptionCode.TMP_PRIVATE_NEED_ACK_REQUEST; //} //else //{ // messageOpcode = OptionCode.TMP_GROUP_REQUEST; //} messageOpcode = OptionCode.TMP_PRIVATE_NEED_ACK_REQUEST; uint channelId = GetChannel(1).channelId; int requestID = _adk.GetService(ServiceType.TMP).SendCommand(textMsg, messageOpcode, channelId); if (requestID == -1) { return; } if (_msgRequesetIdMsgItemInfoDict.ContainsKey((uint)requestID)) { return; } _msgRequesetIdMsgItemInfoDict.Add((uint)requestID, textMsg._targetID.ToString()); } catch (Exception ex) { MessageBox.Show(ex.Message, "UTech", MessageBoxButton.OK, MessageBoxImage.Error); } }
public async Task <ResponseDTO <bool> > SendTextMessageAsync(TextMessageRequest request, Guid roomId, Guid userId) { var response = new ResponseDTO <bool>(); var room = await _context.Rooms.FirstOrDefaultAsync(r => r.Id == roomId); if (room == null) { response.Error = new Error(404, "Room not found"); return(response); } if (!room.Participants.Select(p => p.UserId).Contains(userId)) { response.Error = new Error(409, "You can't send message here, because you are not participant"); return(response); } var message = new MessageEntity() { Id = Guid.NewGuid(), SenderId = userId, RoomId = room.Id, Content = request.Content, Type = MessageTypes.Text, SendingTime = DateTime.UtcNow }; await _context.Messages.AddAsync(message); await _context.SaveChangesAsync(); var socketDTO = new SocketResponseDTO <MessageDTO> { Type = SocketMessageTypes.NewMessage, Model = new MessageDTO(message) }; foreach (var participantId in room.Participants.Select(p => p.UserId)) { await _chatHandler.SendMessageByUserId(participantId, socketDTO); } response.Data = true; return(response); }
void client_TextMessageReceived(Client sender, TextMessageRequest request, string message) { try { if (ConfigurationManager.AppSettings.AllKeys.Contains(message)) { if (ConfigurationManager.AppSettings.AllKeys.Contains($"{message}ValidClient")) { if (!ConfigurationManager.AppSettings[$"{message}ValidClient"].Split(',').Contains(request.SenderClient)) { return; } } var script = GetScriptRunner(ConfigurationManager.AppSettings[message], typeof(Globals)); script(new Globals { client = client, sender = request.SenderClient, utility = new UtilityForServiceUse() }); } } catch { } }
private Task <bool> FetchEmailsAndForward() { List <Message> msg_list = null; try { msg_list = email_service.FetchUnseenMessages(PopServerHost, port, true, username, password, seenUids); //List<Message> msg_list = email_service.FetchUnseenMessages(PopServerHost, port, true, username, password, seenUids); //List<Message> msg_list = email_service.FetchAllMessages(); //lvSendLog.Items.Clear(); //log file info string fpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); string fname = "email.log"; // This file will have a new line at the end. FileInfo info = new FileInfo(fpath + "\\" + fname); if (msg_list.Count == 0) { return(Task <bool> .Factory.StartNew(() => false)); } foreach (Message msg in msg_list) { FromUserEmail = msg.Headers.From.Address; if (!(msg.Headers.From.Address.Contains("@hyt.com") || msg.Headers.From.Address.Equals("*****@*****.**"))) { continue; } StringBuilder builder = new StringBuilder(); string strEmailInfo = string.Empty; strEmailInfo += msg.Headers.Date; strEmailInfo += CRLF; strEmailInfo += msg.Headers.From.Address; strEmailInfo += CRLF; strEmailInfo += msg.MessagePart.Body; strEmailInfo += CRLF; MessagePart plainText = msg.FindFirstPlainTextVersion(); if (plainText != null) { // We found some plaintext! builder.Append(plainText.GetBodyAsText()); } else { // Might include a part holding html instead MessagePart html = msg.FindFirstHtmlVersion(); if (html != null) { // We found some html! builder.Append(html.GetBodyAsText()); } } //save email into log file using (StreamWriter writer = info.AppendText()) { //writer.WriteLine(tbSendText.Text); writer.WriteLine(strEmailInfo); } sendlog_items.Add(new SendLog() { FromName = msg.Headers.From.DisplayName + msg.Headers.From.Address, ReceivedDatetime = msg.Headers.Date, MailSubject = msg.Headers.Subject, MailBody = Regex.Replace(builder.ToString(), @"^\s*$\n|\r", "", RegexOptions.Multiline).TrimEnd() //MailBody = msg.MessagePart.Body == null ? "" : msg.MessagePart.Body.ToString() }); AddSendItem(new SendLog() { FromName = msg.Headers.From.ToString(), //FromName = msg.Headers.Sender == null ? "" : msg.Headers.Sender.ToString(), ReceivedDatetime = msg.Headers.Date, MailSubject = msg.Headers.Subject, MailBody = Regex.Replace(builder.ToString(), @"^\s*$\n|\r", "", RegexOptions.Multiline).TrimEnd() }); string tmp = builder.ToString(); FromUserEmail = tmp.Substring(tmp.IndexOf("Email:") + 7, tmp.IndexOf("Telephone") - tmp.IndexOf("Email:") - 8); } // delete message loop doesn't overlap with message handling loop // in order to avoid read/delete conflict on server foreach (Message msg in msg_list) { //delete email after fetch, otherwise will be fetched next time if (email_service.DeleteMessageByMessageId(msg.Headers.MessageId)) { //MessageBox.Show("The message " + msg.Headers.MessageId + " has been deleted"); } } } // Catch these exceptions but don't do anything catch (PopServerLockedException psle) { return(Task <bool> .Factory.StartNew(() => false)); } catch (PopServerNotAvailableException psnae) { return(Task <bool> .Factory.StartNew(() => false)); } catch (PopServerException psle) { return(Task <bool> .Factory.StartNew(() => false)); } //send to mobile #region send_to_mobile if (_channelCollection.Count <= 0) { //MessageBox.Show("No channel!"); AutoClosingMessageBox msgBox = new AutoClosingMessageBox("No channel available!", "UTech Demo", 2000); return(Task <bool> .Factory.StartNew(() => false)); } try { foreach (Message msg in msg_list) { TextMessageRequest textMsg = new TextMessageRequest(); StringBuilder builder = new StringBuilder(); MessagePart plainText = msg.FindFirstPlainTextVersion(); if (plainText != null) { // We found some plaintext! builder.Append(plainText.GetBodyAsText()); } else { // Might include a part holding html instead MessagePart html = msg.FindFirstHtmlVersion(); if (html != null) { // We found some html! builder.Append(html.GetBodyAsText()); } } textMsg._msg = builder.ToString(); //should be from email somewhere textMsg._targetID = 20; //hardcode OptionCode messageOpcode = new OptionCode(); messageOpcode = OptionCode.TMP_PRIVATE_NEED_ACK_REQUEST; uint channelId = GetChannel(1).channelId; int requestID = _adk.GetService(ServiceType.TMP).SendCommand(textMsg, messageOpcode, channelId); if (requestID == -1) { return(Task <bool> .Factory.StartNew(() => false)); } if (_msgRequesetIdMsgItemInfoDict.ContainsKey((uint)requestID)) { return(Task <bool> .Factory.StartNew(() => false)); } _msgRequesetIdMsgItemInfoDict.Add((uint)requestID, textMsg._targetID.ToString()); } } catch (Exception ex) { MessageBox.Show(ex.Message, "UTech Demo", MessageBoxButton.OK, MessageBoxImage.Error); } #endregion return(Task <bool> .Factory.StartNew(() => true)); }
private Task <bool> FetchEmailsAndForward() { //send to mobile #region send_to_mobile if (_channelCollection.Count <= 0) { //MessageBox.Show("No channel!"); AutoClosingMessageBox msgBox = new AutoClosingMessageBox("Retrying ...", "Not connected!", 2000); return(Task <bool> .Factory.StartNew(() => false)); } List <Message> msg_list = null; try { msg_list = email_service.FetchUnseenMessages(seenUids); if (msg_list.Count == 0) { return(Task <bool> .Factory.StartNew(() => false)); } } // Catch these exceptions but don't do anything catch (PopServerLockedException psle) { return(Task <bool> .Factory.StartNew(() => false)); } catch (PopServerNotAvailableException psnae) { return(Task <bool> .Factory.StartNew(() => false)); } catch (PopServerException psle) { return(Task <bool> .Factory.StartNew(() => false)); } try { //log file info //string fpath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); string fpath = Directory.GetCurrentDirectory(); string fname = "email.log"; // This file will have a new line at the end. FileInfo info = new FileInfo(fpath + "\\" + fname); foreach (Message msg in msg_list) { var to_addr = msg.Headers.To[0].Address; Person p = contactList.Find(x => x.Email.TrimEnd().Equals(to_addr)); if (p == null) { if (email_service.DeleteMessageByMessageId(msg.Headers.MessageId)) { //MessageBox.Show("The message " + msg.Headers.MessageId + " has been deleted"); WriteMessageLog(info, msg); } continue; } TextMessageRequest textMsg = new TextMessageRequest(); StringBuilder builder = new StringBuilder(); builder.Append(msg.Headers.Subject); textMsg._msg = builder.ToString().TrimEnd() + CRLF; textMsg._targetID = uint.Parse(p.TargetID); OptionCode messageOpcode = new OptionCode(); messageOpcode = OptionCode.TMP_PRIVATE_NEED_ACK_REQUEST; uint channelId = GetChannel(1).channelId; int requestID = _adk.GetService(ServiceType.TMP).SendCommand(textMsg, messageOpcode, channelId); if (requestID == -1) { continue; // return Task<bool>.Factory.StartNew(() => false); } if (_msgRequesetIdMsgItemInfoDict.ContainsKey((uint)requestID)) { return(Task <bool> .Factory.StartNew(() => false)); } _msgRequesetIdMsgItemInfoDict.Add((uint)requestID, textMsg._targetID.ToString()); sendlog_items.Add(new SendLog() { ID = requestID, EmailID = msg.Headers.MessageId, FromName = (string.IsNullOrEmpty(msg.Headers.From.DisplayName) ? "" : "<" + msg.Headers.From.DisplayName + ">") + msg.Headers.From.Address, ReceivedDatetime = DateTime.Now.ToString(), //msg.Headers.Date, MailSubject = msg.Headers.Subject, MailBody = Regex.Replace(builder.ToString(), @"^\s*$\n|\r", "", RegexOptions.Multiline).TrimEnd() }); WriteMessageLog(info, msg); //string strEmailInfo = string.Empty; //strEmailInfo += "Date: " + DateTime.Now; // msg.Headers.Date; //strEmailInfo += CRLF; //string display_name = msg.Headers.From.DisplayName == null ? "" : "<" + msg.Headers.From.DisplayName + ">"; //strEmailInfo += "From: " + display_name + msg.Headers.From.Address; //strEmailInfo += CRLF; //display_name = msg.Headers.To.FirstOrDefault().DisplayName == null ? "" : "<" + msg.Headers.To.FirstOrDefault().DisplayName + ">"; //strEmailInfo += "To: " + display_name + msg.Headers.To.FirstOrDefault().Address; //strEmailInfo += CRLF; //strEmailInfo += "Subject: " + msg.Headers.Subject; //strEmailInfo += CRLF; //string mail_body = msg.FindFirstPlainTextVersion() != null ? msg.FindFirstPlainTextVersion().GetBodyAsText() : msg.FindFirstHtmlVersion().GetBodyAsText(); //strEmailInfo += "Body: " + mail_body; //strEmailInfo += CRLF; ////save email into log file //using (StreamWriter writer = info.AppendText()) //{ // //writer.WriteLine(tbSendText.Text); // writer.WriteLine(strEmailInfo); //} } } catch (Exception ex) { AutoClosingMessageBox msgBox = new AutoClosingMessageBox(ex.Message, "UTech Email Gateway", 5000); //MessageBox.Show(ex.Message, "UTech Demo", MessageBoxButton.OK, MessageBoxImage.Error); } #endregion return(Task <bool> .Factory.StartNew(() => true)); }
static void Main(string[] args) { string[] dest = new string[2]; SmsGatewayService sms = new SmsGatewayService(); TextMessageRequest request = new TextMessageRequest(); Credentials cr = new Credentials(); TextMessage tm = new TextMessage(); TextMessageResponse response = new TextMessageResponse(); // Tiempo maximo de respuesta en milisegundos sms.Timeout = 60000; //milisec // XX, YY y ZZ se corresponden con los valores de identificación del usuario en el sistema //domainId solo es necesario si el login no es un email //cr.domainId = "XX"; cr.login = "******"; cr.passwd = "ZZ"; tm.encoding = "UTF-8"; tm.msg = "Mensaje de prueba"; //No es posible utilizar el remitente en América pero sí en España y Europa //Descomentar la línea solo si se cuenta con un remitente autorizado por Altiria //tm.senderId = "remitente"; dest[0] = "346xxxxxxxx"; dest[1] = "346yyyyyyyy"; request.credentials = cr; request.destination = dest; request.message = tm; try { response = sms.sendSms(request); if (response.status != "000") { Console.WriteLine("Código de error de Altiria: " + response.status); } else { Console.WriteLine("Código de Altiria: " + response.status); foreach (TextDestination rd in response.details) { Console.WriteLine(" " + rd.destination + ": Código de respuesta " + rd.status); } } } catch (WebException e) { if (e.Status == WebExceptionStatus.Timeout) { Console.WriteLine("Error TimeOut"); } else { Console.WriteLine("ERROR " + e.Message); } } catch (Exception e) { Console.WriteLine("ERROR: " + e.Message); } }
public Task SendTextMessageAsync(TextMessageRequest request) { return(SendApiRequest(MessagesEndpoint, request)); }
private void TextMessageRequestHandler(TextMessageRequest request) { OnTextMessageReceived(request.Message); }
void client_TextMessageReceived(Client sender, TextMessageRequest request, string message) { Status("Message received: " + message); }