0

我猜 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 问题?

谢谢!

4

1 回答 1

0

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

例如:

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

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

于 2017-08-15T17:26:27.973 回答