为 Sure SMS Gateway 提供 Shell 脚本以生成 URL 通过服务器请求和发送 SMS

Power Shell Script for Sure SMS Gatway to generate URL Request and send SMS via server

我正在使用 SMS 网关,我经常需要向服务器发出 HTTP 请求并发送 SMS。我有一个带有两个参数的扩展名为 .sms 的文件。 phone 号码和消息正文。我必须将该文件上传到目录中。我想编写一个强大的 shell 脚本,它应该获取每个文件并在 URL.

中使用 phone 编号和消息创建对服务器的 HTTP 请求

此处 URL 的文档:https://developer.suresms.com/https/ 脚本应该像这样工作。

首先扫描包含.sms文件的目录,然后提取数据(Phone文件中的号码和消息一条一条),然后进行URL请求(对于每条记录在文件中)和 post 它在服务器上用于发送 SMS 消息。当一个文件的工作完成后,程序应该创建一个目录(名称为“Finish”)并将完成的文件移动到 Finished 目录。工作已经完成。当所有文件都以这种方式工作时,程序应该显示一条消息。

我试过了,但是我写不出这样的剧本,因为我不太熟悉剧本。我需要你对这类工作的指导。谢谢

你可以这样开始。

$ToDoDirectory = 'S:\Scripts\ToSend'
$FinishedDirectory = 'S:\Scripts\Done'
$urlTemplate = 'https://api.suresms.com/Script/SendSMS.aspx?login={0}&password={1}&to={2}&Text={3}'
$smsGateLogin = 'myLogin'
$smsGatePassword = 'myPassword'

$filesToDo = @([System.IO.Directory]::EnumerateFiles($ToDoDirectory,'*.sms', [System.IO.SearchOption]::TopDirectoryOnly))


for ($fileIndex = 0; $fileIndex -lt $filesToDo.Count; $fileIndex++)
{
    Write-Progress -Activity 'Processing SMS Files' -Status "$($fileIndex) of $($filesToDo.Count) done" -PercentComplete ($fileIndex / $filesToDo * 100)
    $smsFile = $filesToDo[$fileIndex]
    $smsText = $null
    $smsNumber = $null
    # Somehow you get contents of your $smsFile to $smsText and $smsNumber variables
    # ...
    $uri = [String]::Format($urlTemplate, $smsGateLogin, $smsGatePassword, $smsNumber, $smsText)
    $requestResult = Invoke-WebRequest -Method Get -Uri $uri
    # Maybe test for $requestResult.StatusCode
    $destSmsFile = [System.IO.Path]::Combine($FinishedDirectory, [System.IO.Path]::GetFileName($smsFile))
    [System.IO.File]::Move($smsFile, $destSmsFile)
}