SMS服务器从应用程序的日志发送SMS

时间:2013-06-12 08:15:13

标签: database logging sms

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

2 个答案:

答案 0 :(得分:0)

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

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

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

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

或者,您可以将手机(甚至是带有SMS屏蔽的Arduino)插入服务器,并使用一些库直接从设备发送短信。但是,维护这可能会有点痛苦。

答案 1 :(得分:0)

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

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

示例:SMSEagle

如果您使用Powershell脚本(see details on using Powershell support in SQL Server 2008)使用数据库事件(更新日志表时触发),您可以通过这种方式向您的短信网关发送短信(Powershell脚本向您发送短信网关)。

示例Powershell脚本,用于向您的硬件短信网关发送SMS(HTTP请求):

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必须相应调整(取决于您的特定设备)