Como enviar SMS a partir do Delphi
A maneira mais simples de enviar SMS a partir do Delphi é usar a API de SMS HTTP/REST integrada do Ozeki SMS Gateway. Quando você usa essa API, enviará mensagens SMS fazendo uma requisição HTTP Post para o gateway de SMS. A requisição HTTP Post conterá uma mensagem formatada em JSON. O gateway de SMS enviará esse SMS para o telefone do destinatário e retornará uma resposta HTTP 200 OK para a sua requisição.
O exemplo de código SMS em Delphi abaixo demonstra como você pode enviar SMS usando a API de SMS HTTP REST do Ozeki SMS Gateway com a unidade Ozeki.Libs.Rest do Delphi. Esta unidade é fornecida gratuitamente, e você pode usá-la e modificá-la em qualquer um dos seus projetos.
SendSms.delphiprogram SendSms; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils, Ozeki.Libs.Rest in '../Ozeki.Libs.Rest/Ozeki.Libs.Rest.pas'; var configuration : Ozeki.Libs.Rest.Configuration; var msg : Ozeki.Libs.Rest.Message; var api : Ozeki.Libs.Rest.MessageApi; var result : MessageSendResult; var read : string; begin try configuration := Ozeki.Libs.Rest.Configuration.Create; configuration.Username := 'http_user'; configuration.Password := 'qwe123'; configuration.ApiUrl := 'http://127.0.0.1:9509/api'; msg := Ozeki.Libs.Rest.Message.Create; msg.ToAddress := '+36201111111'; msg.Text := 'Olá mundo!'; api := Ozeki.Libs.Rest.MessageApi.Create(configuration); result := api.SendMessage(msg); Writeln(result.ToString()); Readln(read); except on E: Exception do Writeln(E.ClassName, ': ', E.Message); end; end.
Como usar o exemplo de SMS em Delphi:
Este exemplo de SMS em Delphi pode ser usado em qualquer aplicação Delphi. Para usá-lo, você deve adicionar a unidade Ozeki.Libs.Rest.pas ao seu projeto. Depois de adicionar a unidade, você deve incluir a diretiva uses Ozeki.Libs.Rest in '../Ozeki.Libs.Rest/Ozeki.Libs.Rest.pas'; na seção de cabeçalho do seu código-fonte Delphi. Isso permitirá que você use as classes fornecidas pela unidade Ozeki.Libs.Rest. Você pode usar a classe Message para criar o SMS. Você pode usar a classe MessageApi para enviar o SMS para o gateway de SMS. O gateway de SMS encaminhará sua mensagem para a rede móvel, seja por uma conexão sem fio ou pela Internet.
Baixar SendSMS.delphi
O código-fonte explicado neste artigo pode ser baixado, usado e modificado gratuitamente.
Download: SendSms.delphi.zip (11.8Kb)
O arquivo SendSms.delphi.zip contém a unidade Ozeki.Libs.Rest, que fornece todas as ferramentas necessárias para enviar e receber mensagens SMS. Você também encontrará o projeto SendSms no zip, que contém o código de exemplo para mostrar como enviar um SMS. Este código de exemplo está listado abaixo.
Para enviar SMS a partir do Delphi:
- Instale um usuário de API HTTP
- Ative "Log communication events" na aba Advanced
- Configure o Embarcadero Delphi Studio
- Baixe e extraia o arquivo SendSms.delphi.zip
- Abra o arquivo SendSms.dproj no Delphi Studio clicando duas vezes nele
- Inicie o aplicativo Ozeki SMS Gateway
- Execute o código Delphi SendSms.dpr no Delphi Studio
- Verifique os logs para ver se o SMS foi enviado
Para poder enviar SMS a partir do Delphi, primeiro você precisa instalar o Ozeki SMS Gateway. O gateway de SMS pode ser instalado no mesmo computador onde você desenvolve seu código Delphi no Visual Studio. Após a instalação, o próximo passo é conectar o Ozeki SMS Gateway à rede móvel. Você pode enviar um SMS de teste a partir da interface gráfica do Ozeki para verificar se sua conexão com a rede móvel está funcionando. O passo final para preparar seu ambiente é criar um usuário de API HTTP para SMS. Crie um usuário com o nome "http_user" e senha "qwe123" para fazer o exemplo funcionar sem modificações.
Depois que o ambiente estiver configurado, você pode executar seu código Delphi.
URL da API HTTP para enviar SMS a partir do DelphiPara enviar SMS a partir do Delphi, seu Delphi terá que fazer uma requisição HTTP para o gateway de SMS. A URL da API é mostrada abaixo. Observe que o endereço IP (127.0.0.1) deve ser substituído pelo endereço IP do seu gateway de SMS. Se o Ozeki SMS Gateway estiver instalado no mesmo computador onde o aplicativo Delphi de SMS está sendo executado, pode ser 127.0.0.1. Se estiver instalado em um computador diferente, deve ser o endereço IP desse computador.
http://127.0.0.1:9509/api?action=rest
Autenticação HTTP para enviar SMS a partir do Delphi
Para autenticar o cliente SMS do Delphi, você precisa enviar o nome de usuário e senha em uma string codificada em base64 para o servidor em uma requisição HTTP. O formato utilizado é: base64(nome de usuário+":"+senha). No Delphi você pode usar o seguinte código para fazer essa codificação:
var usernamePassword := username + ':' + password; var Encoder := TBase64Encoding.Create(); var usernamePasswordEncoded := Encoder.Encode(usernamePassword); result := Format('Basic %s', [usernamePasswordEncoded]);
Por exemplo, se você codificar o nome de usuário 'http_user' e a senha 'qwe123', você obterá a seguinte string codificada em base64: aHR0cF91c2VyOnF3ZTEyMw==. Para enviar
Cabeçalho da requisição HTTP para enviar SMS a partir do Delphi
Para enviar as mensagens SMS, você precisa incluir as seguintes linhas como cabeçalhos na requisição HTTP. Observe que incluímos um tipo de conteúdo e um cabeçalho de Autorização.
Content-Type: application/json Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Requisição HTTP para enviar SMS a partir do Delphi
Para submeter o SMS, sua aplicação Delphi enviará uma requisição HTTP semelhante à mostrada abaixo. Observe que esta requisição contém uma parte de cabeçalho HTTP e uma parte de corpo HTTP. O corpo HTTP é uma string de dados codificada em JSON. Ela contém o número do destinatário e o texto da mensagem.
POST /api?action=sendmsg HTTP/1.0 Connection: keep-alive Content-Type: application/json Content-Length: 412 Authorization: Basic aHR0cF91c2VyOnF3ZTEyMw== Host: 127.0.0.1:9509 Accept: application/json User-Agent: Mozilla/3.0 (compatible; Indy Library) { "messages": [ { "message_id": "ae0d1fe5-7e93-4241-b31c-5b3ebf867c5b", "from_connection": "", "from_address": "", "from_station": "", "to_connection": "", "to_address": "+36201111111", "to_station": "", "text": "Olá mundo!", "create_date": "2021-07-27T14:22:12", "valid_until": "2021-08-03T14:22:12", "time_to_send": "2021-07-27T14:22:12", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": true } ] }
Resposta HTTP recebida pelo exemplo de SMS em Delphi
Assim que o gateway SMS receber esta requisição, ele gerará uma resposta HTTP. A resposta HTTP conterá um código de status, para indicar se a requisição de envio de SMS foi bem-sucedida ou não. Ela também retornará uma estrutura codificada em JSON para fornecer detalhes úteis sobre o envio da mensagem.
HTTP/1.1 200 OK Content-Type: application/json; charset=utf8 Last-Modified: Tue, 27 Jul 2021 06:58:42 GMT Server: 10/10.3.123 Microsoft-HTTPAPI/2.0 User-Agent: OZEKI 10.3.123 (myozeki.com) Date: Tue, 27 Jul 2021 12:22:12 GMT Connection: close { "http_code": 200, "response_code": "SUCCESS", "response_msg": "Mensagens enfileiradas para entrega.", "data": { "total_count": 1, "success_count": 1, "failed_count": 0, "messages": [ { "message_id": "ae0d1fe5-7e93-4241-b31c-5b3ebf867c5b", "from_station": "%", "to_address": "+36201111111", "to_station": "%", "text": "Olá mundo!", "create_date": "2021-07-27 14:22:12", "valid_until": "2021-08-03 14:22:12", "time_to_send": "2021-07-27 14:22:12", "submit_report_requested": true, "delivery_report_requested": true, "view_report_requested": false, "tags": [ { "name": "Type", "value": "SMS:TEXT" } ], "status": "SUCCESS" } ] } }
Conecte seu gateway SMS à rede móvel e crie uma conta de usuário HTTP API
Assumimos que você já instalou o Ozeki SMS Gateway, e que você conectou-o à rede móvel. Para poder enviar SMS para um telefone móvel a partir do Delphi, você precisa configurar uma conta de usuário HTTP API no Ozeki SMS Gateway.
Como enviar SMS a partir do Delphi usando a API de SMS do Delphi (Tutorial em vídeo)
Este vídeo mostra como baixar o arquivo SendSms.delphi.zip desta página e como baixar seu conteúdo no Delphi studio. Se você assistir ao vídeo, notará que o conteúdo do SendSms.delphi zip é colocado na área de trabalho do Windows. Você também verá que clicamos duas vezes no arquivo de projeto SendSms.dproj para abrir o projeto.
Exemplo de SMS em Delphi: SendSms.dproj
Nesta solução há apenas um projeto: SendSms.dproj, e dois arquivos: SendSms.dpr e Ozeki.Libs.Rest.pas.
Como verificar se o SMS foi aceito pelo usuário HTTP
Após o SMS ter sido submetido, é uma boa ideia verificar seu gateway SMS, para ver o que foi recebido. Você pode verificar o log abrindo os detalhes do usuário HTTP a partir do console de gerenciamento do Ozeki SMS Gateway. O vídeo a seguir mostra o que procurar.
Como verificar se o SMS foi enviado para a rede móvel
O passo final para verificar o procedimento é analisar os logs da conexão com a rede móvel. Pode ser necessário ativar o registro nos logs na configuração da conexão antes de enviar a mensagem para visualizá-los. Se o registro estiver ativado, você verá o número de telefone e o texto da mensagem que enviou.
Como é receber uma mensagem SMS no Android (Tutorial em vídeo)
Neste vídeo, vamos mostrar como é receber uma mensagem SMS no Android. O vídeo tem apenas 18 segundos, mas você pode ver todo o processo nele. Ele começa com uma tela inicial comum do Android. Você verá a notificação do SMS e o aplicativo de Mensagens aberto com a mensagem visível.
Resumo
Este artigo mostrou a maneira mais simples de enviar SMS a partir do Delphi. Se você leu este tutorial, sabe como criar um usuário de API SMS HTTP no Ozeki SMS Gateway para poder enviar SMS a partir do Delphi. Uma das muitas vantagens desta solução é que o exemplo de SMS em Delphi fornecido pode ser usado e modificado por você em qualquer um de seus projetos.
Você pode encontrar mais documentos que oferecem outros códigos de programa em Delphi, aproveite todas as oportunidades e estude-os. Se quiser usar este serviço do Ozeki SMS Gateway em um círculo mais amplo, acesse o artigo Como baixar a última unidade de API SMS para Delphi do Github e saiba mais.
Baixe o Ozeki SMS Gateway agora e configure o sistema!
More information
- Enviar SMS em Delphi com a API REST HTTP (exemplo de código)
- Enviar múltiplos SMS em Delphi com a API REST HTTP (exemplo de código)
- Agendar SMS em Delphi com a API REST HTTP (exemplo de código)
- Receber SMS em Delphi com a API REST HTTP (exemplo de código)
- Excluir SMS em Delphi com a API REST HTTP (exemplo de código)
- Como baixar a última unidade de API de SMS em Delphi do Github