我只能使用twiml bin将短信转发到电子邮件吗?

时间:2017-06-26 21:08:03

标签: twilio twilio-api twilio-functions

非常清楚如何使用twilio将短信转发到电子邮件地址 - 他们有一个很好的例子,可以使用托管在第三方服务器上的php代码来实现。

但是,我想只使用twiml应用程序而不是其他第三方请求/代码将短信转发到电子邮件地址。我尝试使用函数:

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

...但这不起作用,大概是因为只接受一个电话号码作为&#34; to:&#34;。

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

2 个答案:

答案 0 :(得分:2)

好的,您说没有第三方请求/代码,但请求Google和您自己的代码怎么样?

如果您有Gmail帐户,则可以使用Google脚本执行此操作。他们为您托管代码,非常简单。

转到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应用程序”。设置执行应用程序为:to me,然后设置谁有权访问应用程序:任何人,甚至匿名。

现在点击部署,Google会要求您对脚本进行身份验证,以允许它以您的身份发送电子邮件(但不会访问您收到的电子邮件)。一旦您授予权限,它将为您提供脚本的URL。

将此URL作为webhook处理程序粘贴到Twilio控制台中,以便在消息进入时将方法设置为HTTP GET

所有这一切都会通过电子邮件向您发送短信。更改下面一行中的<Response/>以包含TwiML以回复发件人或其他任何您希望Twilio在邮件进入时执行的操作。

var output = ContentService.createTextOutput('<Response/>');

显然,这只是一个基本示例,没有身份验证/安全性等,因此对脚本URL的任何调用都会向您发送电子邮件。你确实应该保护它,尽管Google生成的URL不是任何人可能偶然发现的那种。

答案 1 :(得分:1)

Twilio开发者传道者在这里。

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

这可以使用Twilio函数和一些Node.js代码完成。我之前没有这样做过,所以不得不花一些时间来建立它,以便告诉你如何。

此处有一个示例,说明如何构建app that forwards SMS to email using PHP

或者,您可以设置Zapier to forward SMS messages to your email

让我知道这是否有帮助。