我正在制作一个短信发送网站,我使用 Gammu 作为我的本地短信网关,它在我的本地主机中运行良好,基于我使用的 php 代码:
echo shell_exec('"C:\Gammu\bin\gammu.exe" --sendsms TEXT +'.$row["mobilenum"].' -text '.$message.'');
现在,当我开始将网站放在云上时,我该如何执行呢?我正在为我的 SMS 服务器使用基于窗口。
有没有其他方法可以链接云和本地主机来执行 gammu 命令?
在云服务器上调用 shell_exec() 到 gammu.exe 将不起作用,因为您没有电话连接。
您需要通过 HTTP 向可以执行此操作的服务发出请求,而不是从您的云托管网站调用 shell_exec()。
最简单的方法是使用 Twillio.com 之类的东西
或者,您还可以在本地网络上公开一个简单的 HTTP API,云服务器可以访问该 API 以进行 POST。
您需要本地 Gammu 服务器上的静态 IP,并在防火墙中打开相应的端口。
例如:
发布http://100.22.33.11/sms?number=82736164617&text=Hello%20World
或在 JS
$.post('http://100.22.33.11/sms',{
number: '82736164617',
text: 'Hello World'
})
当然,您还需要添加一些身份验证(通过 SSL),以避免成为开放 SMS 代理 :)