1

如何从 Windows Server 2008 R2 发送 SMS?SMS 文本应从该服务器上运行的 VMS 应用程序记录。日志存在于 MS SQL 2008 数据库中。一旦在数据库的日志表中更新了日志条目,该日志条目应自动发送短信。做这个的最好方式是什么 ?我无法将互联网连接到此服务器,因为这是违法的。有一项规定,一旦事件存在,就会在该应用程序上发送 SMTP 邮件。如果我们可以根据来自该应用程序的 smtp 邮件发送短信,也可以。

4

2 回答 2

0

您也可以使用硬件短信网关。它是一种充当您自己的私人短信网关的设备。您购买它,将它连接到您的局域网中,然后将短信直接发送到 GSM 网络。

  • 优点:更高的可靠性和安全性(比使用电子邮件)
  • 缺点:花钱 - 需要您的一次性投资

示例:短信鹰

如果您将使用带有 Powershell 脚本的数据库事件(更新日志表时触发)(请参阅有关在 SQL Server 2008 中使用 Powershell 支持的详细信息),您可以通过这种方式将 SMS 消息发送到您的 sms 网关(Powershell 脚本发送 SMS到您的网关)。

将 SMS(HTTP 请求)发送到您的硬件 sms 网关的示例 Powershell 脚本:

param(
  [string]$to = $(throw "Script usage: sendsms.ps1 -to -message "),
  [string]$message = $(throw "Script usage: sendsms.ps1 -to -message ")
)
Add-Type -AssemblyName System.Web
$yourgatewayip = "192.168.0.101"
$yourgatewayusername = "john"
$yourgatewaypassword = "doe"
$smstext = [System.Web.HttpUtility]::UrlEncode($message)
$url = "http://$yourgatewayip/index.php/http_api/send_sms?login=$yourgatewayusername&pass=$yourgatewaypassword&to=$to&message=$smstext"
$client = New-Object system.Net.WebClient
$result = $client.downloadString($url)
Write-Host $result

注意:必须相应调整 $url(取决于您的特定设备)

于 2013-06-13T07:48:39.763 回答
0

您可能不想尝试使用某些运营商提供的电子邮件到 SMS 网关(不是最佳路线,有时会被阻止等)。

但是,您可以创建一个以 [number]-prefix@[yourdomain] 形式接受电子邮件的外部服务。SendGridPostmark等API 提供了接收传入电子邮件并将其转换为 Web 请求(邮戳/ sendgrid)的 API。

然后,您可以使用NexmoTwilio等 SMS API将 SMS 发送给最终用户。本质上是为自己构建一个简单的电子邮件到 SMS 代理。

同时使用电子邮件和 SMS API 可以让您的代理像单个脚本一样简单,接受入站电子邮件并将其转换为 SMS。大概有 20 行左右的代码(如果有的话)。

或者,您可以将电话(甚至是带有 SMS 屏蔽的 Arduino)插入服务器,并使用一些库直接从设备发送 SMS。不过,这可能会更痛苦。

于 2013-06-12T14:06:13.917 回答