2017-07-20 5 views
0

Ich vermute, es gibt ein Problem mit Mandrill-Anhänge x Hotmail/Outlook.com.Mandrill Anhang ohne Erweiterung auf Hotmail/Outlook.com

Ich kann E-Mail-Anhänge mit Mandrill mit base64_encode() senden. Ich benutze die PHP-Bibliothek.

Wenn ich eine E-Mail an Gmail oder einen anderen Anbieter sende, sieht der Anhang gut aus. Herunterladen und normal öffnen.

Aber Senden an eine Hotmail/Outlook.com, die Anhänge kamen ohne Erweiterung/Dateiformat. Durch das Herunterladen kann es nur durch Hinzufügen der Erweiterung manuell geöffnet werden (z. B. .pdf).

Der Code:

$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' => '[email protected]', 
    'from_name' => 'Sender', 
    'attachments' => array(
    array(
     'name' => 'Test PDF document', 
     'type' => $file_type, 
     'content' => base64_encode($file_data) 
    ) 
), 
    'to' => array(
    array(
     'email' => '[email protected]', 
     'name' => 'John Doe', 
     'type' => 'to' 
    ) 
), 
    'headers' => array('Reply-To' => '[email protected]') 
); 
$result = $mandrill->messages->send($message); 

Irgendwelche Ideen? Ist es ein Mandrill- oder Hotmail-Problem?

Dank!

Antwort

0

Ich habe die Lösung gefunden. Google Mail und andere E-Mail-Dienste erkennen das Attribut type wie oben, Hotmail erkennt den Dateityp jedoch nur, indem er die Erweiterung zum Anlagennamen hinzufügt (Attribut name).

Zum Beispiel:

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

Es ist offensichtlich aussehen, aber Hotmail erfordert. Mein einfaches Wissen teilen, da ich keine Antworten erhielt.