Vcard MMS文件名始终为“文本1”

时间:2019-03-27 23:05:52

标签: twilio

当使用mediaUrl选项通过Twilio通过SMS消息发送vcard文件时,该文件显示在iPhone上,文件旁边带有“文本1”,就好像文件名是“文本1”一样。

我尝试使用示例vcard文件等重命名vcard文件。无论文件显示为“文本1”是什么。

Example vcf

我尝试在iPhone 8和iPhone 10上进行尝试。我尝试了裸露的VCF文件和Outlook中功能齐全的文件,甚至尝试过在线示例文件,例如http://www.w3.org/2002/12/cal/vcard-examples/john-doe.vcf-无论如何,它们在iPhone上显示为“文本1“。

我该怎么做才能使其成为电话号码或姓名?

编辑---来自@philnash的评论之后,我能够向该文件添加一个内容处理标头,该标头现在又返回标头,如下所示:

 Content-Disposition: attachment; name="John Doe"; filename="john-doe.vcf" 

这是Fiddler的屏幕截图:
Fiddler screenshot

我还将该文件重命名为唯一名称,并再次尝试以防Twilio或沿途任何地方缓存旧文件。标题在那里,但是消息仍然在iPhone上显示“文本1”。

以防它与Azure Blob存储有关。我还编码了一个ASP.Net MVC文件操作,该操作返回带有内容伪装标头的文件-在iPhone上也显示为“文本1”。 IIS server

4 个答案:

答案 0 :(得分:1)

这里是Twilio开发人员的传播者。

当Twilio为MMS提供元数据时,它基于Content-Disposition标头这样做,当您从您提供的URL请求媒体时,它就会得到。如果没有可用的,它将设置为通用名称,例如本例中的“文本1”。

要解决此问题,您需要在要提供的文件上设置Content-Disposition响应标头。在此标头中,您可以声明名称和文件名。我一直无法测试(我不在美国,所以无法从Twilio接收彩信),但我猜想该名称已被使用,尽管我也将使用文件名进行测试。

标题应该看起来像这样:

Content-Disposition: attachment; name="John Doe"; filename="john-doe.vcf"

答案 1 :(得分:1)

没有解决办法,只是补充说,这种体验也可以在Android 9(Pie)上复制。与上面的唯一差异是文件为“ text_1”。

答案 2 :(得分:1)

我遇到了同样的问题,对此进行了一些测试。一旦发送了Vcard,它就会出现,随后发送相同的Vcard会导致发送文本1作为Vcard的名称。但是,对于发送给新收件人的发送,其名称为。 ...至少从我的测试中得出。

答案 3 :(得分:0)

我花了很长时间对它进行故障排除。我几乎要放弃了。但是后来我通过手机通过彩信将自己的联系人发送到twilio控制的号码,这样我就可以看到Twilio直接来自iphone时捕获的标头。那是当我注意到这个重要的标题时:

Content-Disposition: inline; filename="what-to-show.vcf"

这里的关键是“内联”参数,“附件”不起作用。然后,我的东西就按照我想要的在iOS上出现了。 (“显示内容”而不是“文本1”)。完善!