【问题标题】:Can I forward SMS to an email using ONLY a twiml bin?我可以仅使用 twiml bin 将 SMS 转发到电子邮件吗?
【发布时间】:2017-08-22 01:03:22
【问题描述】:

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

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

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

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

是否可以只使用 twiml bin 来做到这一点?

【问题讨论】:

    标签: twilio twilio-api twilio-functions


    【解决方案1】:

    好的,您说没有第 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。更改以下行中的 &lt;Response/&gt; 以包含 TwiML 以回复发件人或您希望 Twilio 在收到消息时执行的任何其他操作。

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

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

    【讨论】:

    • 非常感谢 - 这确实有效。您需要:发布 -> 部署为 Web 应用程序才能运行,并且您需要授予“匿名”访问权限才能运行它。
    【解决方案2】:

    这里是 Twilio 开发者宣传员。

    您无法将 SMS 消息转发到仅使用 TwiML Bin 的电子邮件地址。没错,&lt;Message&gt; TwiML 只接受 to 属性中的电话号码。

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

    这里有一个如何构建app that forwards SMS to email using PHP的示例。

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

    让我知道这是否有帮助。

    【讨论】:

    • 非常感谢。是的,我想这是对新功能特性的一个很好的用途...... node.js 代码是否需要托管在某个地方,或者您可以将所有内容放入函数中并将其全部托管在 twilio 中吗?
    • 一切都可以进入函数并托管在 Twilio。这就是我们构建函数的原因!
    • Twilio 的 Zapier 集成已明显过时。它使用 5 分钟轮询而不是 webhook 作为触发器。所以对于任何 2FA 使用它都不起作用,因为发送到电子邮件的短信太延迟了。
    猜你喜欢
    • 2020-03-02
    • 2011-05-26
    • 1970-01-01
    • 1970-01-01
    • 2022-01-09
    • 1970-01-01
    • 2016-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多