Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Twilio 我可以只使用twiml邮箱将短信转发到电子邮件吗?_Twilio_Twilio Api_Twilio Functions - Fatal编程技术网

Twilio 我可以只使用twiml邮箱将短信转发到电子邮件吗?

Twilio 我可以只使用twiml邮箱将短信转发到电子邮件吗?,twilio,twilio-api,twilio-functions,Twilio,Twilio Api,Twilio Functions,很明显,您应该如何使用twilio将SMS转发到电子邮件地址——他们有一个很好的例子,可以使用托管在第三方服务器上的php代码来实现这一点 但是,我想只使用twiml应用程序,不使用其他第三方请求/代码,将SMS转发到电子邮件地址。我尝试使用以下函数执行此操作: <Response> <Message to="user@example.com">{{From}}: {{Body}}</Message> </Response> {{From}}:

很明显,您应该如何使用twilio将SMS转发到电子邮件地址——他们有一个很好的例子,可以使用托管在第三方服务器上的php代码来实现这一点

但是,我想只使用twiml应用程序,不使用其他第三方请求/代码,将SMS转发到电子邮件地址。我尝试使用以下函数执行此操作:

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

{{From}}:{{Body}
。。。但这不起作用,大概是因为只接受一个电话号码作为“收件人:”


是否可以仅使用twiml垃圾箱来完成此操作?

这里是Twilio开发者福音传道者

您不能将短信转发到只有TwiML邮箱的电子邮件地址。没错,只接受
to
属性中的电话号码

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

这里有一个示例,说明如何构建

或者,您可以设置


让我知道这是否有帮助。

好的,你说没有第三方请求/代码,但是向谷歌请求和你自己的代码怎么样

如果你有一个Gmail帐户,你可以用谷歌脚本来完成。它们为您托管代码,而且非常简单

转到并创建一个新项目,删除窗口中的代码并粘贴以下内容,将电子邮件地址替换为您希望发送电子邮件的地址

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;
}
函数doGet(e){
var-from=e.parameter.from;
var to=e.parameter.to;
var body=e.parameter.body;
var emailAddress=your@email.com';
var消息=主体;
var subject='SMS from'+from+'至'+至+'已收到';
MailApp.sendmail(电子邮件地址、主题、消息);
var output=ContentService.createTextOutput(“”);
setMimeType(ContentService.MimeType.XML);
返回输出;
}
从“发布”菜单中选择“部署为web应用”。将“执行应用程序”设置为:对我,然后将有权访问该应用程序的用户设置为:对任何人,甚至是匿名用户

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

将此URL粘贴到Twilio控制台中,作为消息传入时的webhook处理程序,并将该方法设置为HTTP GET

所有这一切将做的是电子邮件给你的短信。将下面一行中的
更改为包含TwiML,以便在收到消息时回复发件人或执行其他任何您希望Twilio执行的操作

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

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

非常感谢。是的,我想这是新功能的一个很好的用途。。。node.js代码是否需要托管在某个地方,或者您是否可以将所有内容都放在函数中并在twilio中托管?所有内容都可以放在函数中并在twilio中托管。这就是我们构建函数的原因!Twilio的Zapier集成明显过时。它使用5分钟轮询而不是webhooks作为触发器。。所以对于任何2FA的使用,它都不起作用,因为短信到电子邮件的时间太晚了。非常感谢-这确实起作用了。您需要:发布->部署为web应用,然后它才能工作,并且您需要授予“匿名”访问权才能运行它。