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

时间:2017-07-20 14:28:44

标签: php mandrill hotmail outlook.com transactional-email

我猜Mandrill附件x Hotmail / Outlook.com存在问题。

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

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

但是发送到Hotmail / Outlook.com,附件没有扩展名/文件格式。通过下载,只能通过手动添加扩展名来打开它(例如,.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问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

我找到了解决方案。 Gmail和其他电子邮件服务会识别上面的type属性,但Hotmail只会通过将附加名称添加到附件名称name属性来识别文件类型。

例如:

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

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