山魈在 Hotmail/Outlook.com 上没有扩展名的附件

Mandrill's attachment without extension on Hotmail/Outlook.com

我猜 Mandrill 附件 x Hotmail/Outlook.com.

有问题

我可以使用 base64_encode() 使用 Mandrill 发送电子邮件附件。我正在使用 PHP 库。

如果我向 Gmail 或任何其他提供商发送电子邮件,附件看起来没问题。下载并正常打开

但是发送到 Hotmail/Outlook.com,附件没有 extension/file 格式。下载后,只能手动添加扩展名(例如.pdf)才能打开。

代码:

$file_data = file_get_contents($_FILES["test_file"]["tmp_name"])
$file_type = $_FILES["test_file"]["type"]

$mandrill = new Mandrill('MANDRILL_API_KEY_HERE');
$message = array(
  'html' => $html,
  'subject' => 'Testing',
  'from_email' => 'sender@test.com',
  'from_name' => 'Sender',
  'attachments' => array(
    array(
      'name' => 'Test PDF document',
      'type' => $file_type,
      'content' => base64_encode($file_data)
    )
  ),
  'to' => array(
    array(
      'email' => 'to@test.com',
      'name' => 'John Doe',
      'type' => 'to'
    )
  ),
  'headers' => array('Reply-To' => 'sender@test.com')
);
$result = $mandrill->messages->send($message);

有什么想法吗?是 Mandrill 还是 Hotmail 问题?

谢谢!

我找到了解决办法。 Gmail 和其他电子邮件服务识别上述 type 属性,但 Hotmail 仅通过将扩展名添加到附件名称(name 属性)来识别文件类型。

例如:

'name' => 'Test PDF document.pdf',

它看起来很明显,但 Hotmail 需要它。分享我的简单知识,因为我没有收到答案。