Como enviar SMS a partir de C# usando SQL Server
Download:
Sending_SMS_through_MS_SQL_Server.zip
Veja como enviar SMS inserindo linhas em um banco de dados Microsoft SQL através de uma aplicação em C#.NET. Esta tecnologia é destinada a desenvolvedores com conhecimento básico em C#.NET e SQL. O código-fonte disponível para download ajuda você a começar.
Nos capítulos seguintes, você pode encontrar os pré-requisitos necessários e uma explicação detalhada sobre como usar o código. Um diagrama de fluxo útil mostra a conexão básica entre o usuário da aplicação em C# e o telefone do destinatário.
O código é útil para quem deseja
- adicionar funcionalidade de SMS à sua aplicação em C#.
- integrar notificações automáticas por SMS.
- proteger seus produtos adicionando login por SMS.
Pré-requisitos
Os requisitos de software do sistema estão listados na tabela a seguir. Por favor, baixe o SMS Gateway e instale o software SMS Gateway com .NET framework 4.5 e um Microsoft Visual Studio para executar seu código.
Sistema Operacional: | Windows 11, Windows 10, Windows 8, Windows 7, Windows Server 2019, Windows Server 2016, Windows Server 2012 R2, Windows Server 2008 R2, Windows Vista |
Requisitos básicos de software: |
.NET Framework 4.5
Ozeki SMS Gateway Microsoft SQL Server 2016 Express Edition ou versões mais recentes do Microsoft SQL Server |
Plataforma de desenvolvimento: | Microsoft Visual Studio |
Como funciona
Primeiro, você precisa instalar o Ozeki SMS Gateway e criar um Usuário de Banco de Dados no SMS Gateway. Conecte o usuário ao seu banco de dados MSSQL. As mensagens SMS a serem enviadas serão SELECIONADAS da tabela de mensagens de saída do SQL, que por padrão é chamada de 'ozekimessageout'.
Em seguida, você deve instalar um ambiente C#.NET. Sua aplicação em C# pode se conectar ao seu banco de dados MSSQL e inserir mensagens SMS na tabela de mensagens de saída.
Certifique-se de que seu Ozeki SMS Gateway esteja conectado à rede GSM através de um modem GSM ou qualquer provedor de serviço de SMS por IP via internet. Por exemplo, CIMD2 ou UCP/EMI são conexões muito populares com provedores de serviço.
Veja o fluxo de trabalho da conexão C# através do MSSQL na Figura 1.
Basicamente, o Microsoft SQL Server pode ser acessado tanto pela sua aplicação em C# quanto pelo Ozeki SMS Gateway. Todas as mensagens recebidas e enviadas são armazenadas no MSSQL Server para uso futuro.
Ao adicionar os códigos apropriados à sua aplicação em C#, você pode conectá-la ao seu banco de dados SQL para torná-la capaz de INSERIR novas linhas na tabela de mensagens de saída e ler mensagens recebidas.
O Usuário de Banco de Dados do Ozeki SMS Gateway é capaz de ler a tabela de mensagens de saída para enviar mensagens SMS e INSERIR novas linhas na tabela de mensagens recebidas para outros usuários lerem. Por exemplo, o usuário da aplicação em C# pode lê-las.
Como configurar seu MSSQL Server Passo 1: Instale o Microsoft SQL Server 2016 Express EditionPasso 2: Inicie o Microsoft SQL Server 2016 Express Edition e faça login.
Passo 3: Ative a autenticação do servidor, para que sempre exija um par de usuário e senha do banco de dados. (Tutorial de ajuda rápida)
Passo 4: Crie um banco de dados e conceda permissões de seleção, inserção, atualização e exclusão a um usuário. (Tutorial de ajuda rápida) Adicione um Usuário de Banco de Dados ao Ozeki SMS Gateway Passo 1: Inicie o Ozeki 10 Ajuda com imagem)
Passo 2: Inicie o Ozeki SMS Gateway a partir da área de trabalho do Ozeki 10.
Passo 3: Instale um Usuário de Banco de Dados e defina a string de conexão. (Tutorial de ajuda rápida) Use o código em C# baixado Passo 1: Baixe o arquivo zip e extraia-o.
Passo 2: Defina os dados de conexão do banco de dados SQL em 'DatabaseHandling.cs'. (Tutorial de ajuda rápida)
Passo 3: Inicie o serviço Ozeki 10 se ele não estiver em execução. (Tutorial de ajuda rápida)
Passo 4: Compile e execute o projeto no Microsoft Visual Studio
Passo 5: Uma janela será exibida. Clique no botão Compor mensagem.
Preencha os campos de destinatário e texto da mensagem e clique em 'Enviar'. (Tutorial de ajuda rápida)
Como funciona o código de exemplo
O código disponível para download no topo da página pode inserir mensagens na tabela 'ozekimessageout'. O Database User do Ozeki SMS Gateway verifica periodicamente 'ozekimessageout' para encontrar novas linhas de mensagem e enviá-las para o telefone do destinatário. Cada linha de mensagem possui um atributo de status. Após o envio da mensagem SMS, o status será alterado de 'Send' para 'Sent'.
Não se esqueça de verificar se o seu servidor Microsoft SQL está em execução e modificar os detalhes de conexão do servidor em 'DatabaseHandling.cs', que você pode encontrar no projeto de exemplo.
Classes C# do código de exemplo
MainForm.cs (Figura 2):
Esta classe contém a primeira janela que é aberta. Como você pode ver na Figura 2, ela pode mostrar o conteúdo de duas tabelas. Este conteúdo é lido por uma instrução SELECT de 'ozekimessageout' e 'ozekimessagein'. Também contém dois botões 'Atualizar' e um botão 'Compor mensagem'. Pressione-o para usar a próxima classe, 'ComposeMessageForm.cs'.
ComposeMessageForm.cs (Figura 3):
Esta é a próxima página onde você pode preencher os campos de dados necessários para criar uma nova mensagem.
DatabaseHandling.cs:
É aqui que você pode definir a conexão com o banco de dados (Figura 4) e atualizar as tabelas de 'MainForm.cs'.
Como funciona o código de envio de mensagens
Em 'ComposeMessageForm.cs', você pode preencher os dois campos com o endereço do destinatário e o texto da mensagem. Ao pressionar 'Enviar', você pode iniciar o seguinte código:
ComposeMessageForm.cs... private void buttonSend_Click(object sender, EventArgs e) { CheckAndSendMessage(); } private void CheckAndSendMessage() { if (textBoxRecipient.Text == "") { MessageBox.Show("O campo destinatário não pode estar vazio!", "Valor de campo incorreto"); return; } string errorMsg = ""; DatabaseHandling.insertMessage(textBoxRecipient.Text, textBoxMessageText.Text, out errorMsg); MessageBox.Show(errorMsg, "Resultado da inserção da mensagem"); } ...Figura 5 - Verifica se o campo do destinatário está vazio
O método CheckAndSendMessage() é chamado por 'buttonSend_Click(...)'. O método começa verificando o campo do destinatário e executa insertMessage(...) de 'DatabaseHandling.cs' se o campo do destinatário NÃO estiver vazio (Figura 5). insertMessage(...) pode inserir uma nova linha na tabela 'ozekimessageout' (Figura 6) (O valor padrão do atributo msgtype é SMS:TEXT). O Ozeki SMS Gateway lerá as linhas do servidor SQL, como você pode ver no diagrama de fluxo de trabalho acima.
DatabaseHandling.cs... public static void insertMessage(string receiver, string messageText, out string errorMsg) { Connect(out errorMsg); if (errorMsg != "") return; try { SqlCommand sqlComm = sqlConn.CreateCommand(); sqlComm.CommandText = "insert into ozekimessageout " + "(msgtype,receiver,msg,status) " + "values ('SMS:TEXT','" + receiver + "','" + messageText + "','send');"; if (sqlComm.ExecuteNonQuery() == 0) { errorMsg = "A inserção NÃO foi bem-sucedida!"; } else { errorMsg = "A inserção foi bem-sucedida!"; } } catch (Exception e) { errorMsg = e.Message; } CloseConnection(); } ...Figura 6 - INSERT da mensagem no seu banco de dados SQL
Você pode usar outros tipos de mensagem além de 'SMS:TEXT' (por exemplo, 'SMS:WAPPUSH', 'SMS:VCARD'), como você pode ver na Figura 7.
... sqlComm.CommandText = "insert into ozekimessageout " + "(msgtype,receiver,msg,status) " + "values ('SMS:WAPPUSH','" + receiver + "','" + messageText + "','send');"; ...Figura 7 - Tipo de mensagem alterado de 'SMS:TEXT' para 'SMS:WAPPUSH'
Perguntas frequentes
Pergunta:
Este exemplo em C# pode ser executado em um computador diferente da máquina do Ozeki SMS Gateway ou do servidor MSSQL?
Resposta: Sim, pode. Por favor, modifique o endereço IP em 'DatabaseHandling.cs' para o endereço IP do seu servidor MSSQL.
Pergunta:
Posso alterar o número de telefone do remetente?
Resposta:
Sim. Por favor, INSIRA também o número do remetente na linha da mensagem (Figura 8).
Isso só funciona se você tiver uma conexão IP SMS.
... string SenderNumber = "+449876543"; sqlComm.CommandText = "insert into ozekimessageout " + "(msgtype,sender,receiver,msg,status) " + "values ('SMS:TEXT','" + SenderNumber + "','" + receiver + "','" + messageText + "','send');"; ...Figura 8 - Instrução INSERT INTO modificada com um atributo adicional 'sender'
Resumo
Este artigo explicou como enviar SMS a partir de C# usando um SQL Server. Isso significa que você pode enviar um SMS inserindo uma linha em um banco de dados Microsoft SQL. Este sistema utiliza uma aplicação em C#.NET. Enviar um SMS a partir de um SQL Server significa que você pode usar a linguagem SQL para pesquisar uma mensagem ou gerenciar mensagens SMS. Isso irá melhorar significativamente a eficiência da comunicação dentro da sua organização e tornará o fluxo de informações mais rápido.
Se você gostaria de saber mais sobre a tecnologia que a Ozeki oferece, visite o site da Ozeki. Nós recomendamos começar com a API de SMS em C#. Você aprenderá mais sobre a API de SMS em C# da Ozeki neste artigo. A seguir, se você deseja enviar o SMS usando a API de SMS HTTP, visite este artigo: API de SMS HTTP.
Para começar a enviar mensagens SMS usando APIs, baixe o Ozeki SMS Gateway agora e comece a trabalhar!
More information
- API SMS C#
- Script SMS em C# ASP
- Como enviar SMS de C# usando HTTP get
- API SMS em C# para SQL