我猜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问题?
谢谢!
答案 0 :(得分:0)
我找到了解决方案。 Gmail和其他电子邮件服务会识别上面的type
属性,但Hotmail只会通过将附加名称添加到附件名称name
属性来识别文件类型。
例如:
'name' => 'Test PDF document.pdf',
看起来很明显,但Hotmail需要它。分享我的简单知识,因为我没有得到答案。