twilio - 我可以仅使用 twiml bin 将 SMS 转发到电子邮件吗?

标签 twilio twilio-api twilio-functions

很清楚您应该如何使用 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/

相关文章:

twilio - 如何将电话号码从主帐户转移到子帐户

node.js - Twilio 函数 : Sending WhatsApp message when incoming call is received

twilio - 创建对话参与者时无法为参与者添加友好名称

twilio - 如何返回对短信请求的空响应?

javascript - Twilio 客户端聊天 - 如何按名称搜索 channel ?

java - Twilio 通过 ivr 调用回复传入短信

node.js - 如何在 Node.JS 中删除调用者在 Twilio 中所做的最后(最近)录音

node.js - 如何在 twilio 函数运行时环境中声明自定义函数?

Twilio - 中断 Say block

twilio - 增加 Twilio say 命令的音量