5

很清楚您应该如何使用 twilio 将 SMS 转发到电子邮件地址 - 他们有一个很好的例子,使用托管在第三方服务器上的 php 代码来做这件事。

但是,我想仅使用 twiml 应用程序而不使用其他第三方请求/代码将 SMS 转发到电子邮件地址。我尝试使用以下功能:

<Response>
<Message to="user@example.com">{{From}}: {{Body}}</Message>
</Response>

...但这不起作用,大概是因为只接受电话号码作为“收件人:”。

是否可以仅使用 twiml bin 来执行此操作?

4

2 回答 2

6

好的,您说没有第三方请求/代码,但是向 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 不是任何人都可能偶然发现的那种。

于 2017-06-27T22:34:29.540 回答
1

Twilio 开发人员布道者在这里。

您不能仅使用 TwiML Bin 将 SMS 消息转发到电子邮件地址。你是对的,<Message>TwiML只接受to属性中的电话号码。

这可以使用 Twilio 函数和一些 Node.js 代码来完成。我以前没有这样做过,所以必须花一些时间来构建它才能告诉你如何做。

这里有一个示例,说明如何使用 PHP 构建将 SMS 转发到电子邮件的应用程序

或者,您可以设置Zapier 将 SMS 消息转发到您的电子邮件

让我知道这是否有帮助。

于 2017-06-27T11:01:49.350 回答