非常清楚如何使用twilio将短信转发到电子邮件地址 - 他们有一个很好的例子,可以使用托管在第三方服务器上的php代码来实现。
但是,我想只使用twiml应用程序而不是其他第三方请求/代码将短信转发到电子邮件地址。我尝试使用函数:
<Response>
<Message to="user@example.com">{{From}}: {{Body}}</Message>
</Response>
...但这不起作用,大概是因为只接受一个电话号码作为&#34; to:&#34;。
是否可以仅使用twiml bin进行此操作?
答案 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。
让我知道这是否有帮助。