很清楚您应该如何使用 twilio 将 SMS 转发到电子邮件地址 - 他们有一个很好的例子,可以使用托管在第三方服务器上的 php 代码来实现。
但是,我想仅使用 twiml 应用程序而不使用其他第三方请求/代码将 SMS 转发到电子邮件地址。我尝试使用该功能:
<Response>
<Message to="user@example.com">{{From}}: {{Body}}</Message>
</Response>
...但这不起作用,大概是因为只接受电话号码作为“收件人:”。
是否可以仅使用 twiml bin 来做到这一点?
最佳答案
好的,您说没有第 3 方请求/代码,但是对 Google 的请求和您自己的代码怎么样?
如果您有 Gmail 帐户,则可以使用 Google Scripts 来完成。他们为您托管代码,这很容易。
转至 https://script.google.com并创建一个新项目,删除窗口中的代码并粘贴以下内容,将电子邮件地址替换为您想要接收电子邮件的地址。
function doGet(e){
var from = e.parameter.From;
var to = e.parameter.To;
var body = e.parameter.Body;
var emailAddress = 'your@email.com';
var message = body;
var subject = 'SMS from ' + from + ' to ' + to + ' received';
MailApp.sendEmail(emailAddress, subject, message);
var output = ContentService.createTextOutput('<Response/>');
output.setMimeType(ContentService.MimeType.XML);
return output;
}
从发布菜单中选择部署为 Web 应用程序。将应用程序执行为:设置为我,然后将谁有权访问应用程序:设置为任何人,甚至匿名。
现在单击部署,Google 将要求您验证您的脚本,以允许它以您的身份发送电子邮件(但不能访问您收到的电子邮件)。授予权限后,它将为您提供脚本的 URL。
将此 URL 粘贴到您的 Twilio 控制台中作为消息传入时的 webhook 处理程序,并将方法设置为 HTTP GET
所有这一切都只是通过电子邮件向您发送 SMS。更改
<Response/>
在下面的行中包含 TwiML,用于回复发件人或在消息传入时您希望 Twilio 执行的任何其他操作。var output = ContentService.createTextOutput('<Response/>');
显然,这只是一个基本示例,没有身份验证/安全性等,因此对您的脚本 URL 的任何调用都会向您发送一封电子邮件。您应该真正保护它,尽管 Google 生成的 URL 不是任何人都可能偶然发现的那种。
关于twilio - 我可以仅使用 twiml bin 将 SMS 转发到电子邮件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44768719/