API v3 - 为什么类型 application/pdf 的附件下载为类型 'File' 而不是 PDF 本身?

API v3 - Why is an attachment of type application/pdf downloading as type 'File' instead of PDF itself?

我正在尝试发送 PDF (4.3KB) 以及我的电子邮件请求。 SendGrid v3 MailSend Doc. 表示 attachments 是一个 (array[object]),并且应具有以下字符串 -

如您所见,我们必须提供文件的 Base64 编码 - 所以我将我的 PDF 从 here 转换为 Base64。这是我正在使用 (Curl) 执行我的请求的代码 -

curl --request POST \
  --url https://api.sendgrid.com/v3/mail/send \
  --header 'authorization: Bearer <API_KEY>' \
  --header 'Content-Type: application/json' \
  --data '{
  "personalizations": [
    {"to" : [{"email": "sample@example.com"}], "dynamic_template_data": {"cardphoto": "xxx"}},
    {"to" : [{"email": "sample@example.com"}], "dynamic_template_data": {"cardphoto": "xxx"}}
  ],
  "from": {"email": "sample@example.com", "name": "Sample Name"},
  "reply_to": {"email": "sample@example.com","name": "Sample Name"},
  "attachments": [
    {
      "content": "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",
      "filename": "WIRC Sr No 42 - CA xxxxx",
      "type": "application/pdf",
      "disposition": "attachment"
    }
  ],
  "template_id" : "<TEMPLATE_ID>"
}'

上面的代码工作正常,我收到了带有附件的电子邮件。但是当我在 GMail/YahooMail/Outlook(桌面)上打开电子邮件并尝试安装附件时,安装文件最终不是 PDF,而是文件类型“File”。奇怪的是,在电子邮件中看起来像是附加了 PDF,但下载结果不是 PDF。此图更详细地解释了整个场景 - https://i.ibb.co/YysYRTh/image.png

我的 Curl 代码的附件部分有问题吗?我应该怎么办?请指导我... 谢谢!

感谢@KJ 和@philnash,将“.pdf”添加到 filename 属性 对我来说非常有效。谢谢你指导我! :)

>> "filename": "WIRC Sr No 42 - CA xxxxx""filename": "WIRC Sr No 42 - CA xxxxx.pdf"