2017-03-01 4 views
0

Kann mir jemand sagen, wo ich schief gegangen bin? Ich füge einen Anhang zu einer E-Mail aus einem Blob in der Datenbank hinzu. Ich gehe davon aus, dass die Header auf dieser Seite falsch formatiert sind, aber den ganzen Tag damit verbracht haben und es immer noch nicht funktionieren können!E-Mail-Header-Format (PHP)

$semi_rand = md5(time()); 
$mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 
$headers2 = array(
'From: ' . $fromName . ' < ' . $fromEmail . ' > ', 
'BCC: [email protected]', 
'MIME-Version: 1.0', 
'Content-Type: multipart/mixed;', 
'boundary='.$mime_boundary, 
); 
// multipart boundary 
$body = '--'.$mime_boundary.'\n' ; 
$body .= 'Content-Type: text/html; charset=\"iso-8859-1\"\n'; 
$body .= $message ; 
$body .= '--'.$mime_boundary.'\n'; 

// preparing attachments 
    global $wpdb; 
    $data = $wpdb->get_var("SELECT documentblob FROM quote"); 
    $data = chunk_split(base64_encode($data)); 

    $fname1='quotation.pdf'; 

$body .= 'Content-Type: {"application/octet-stream"};\n'; 
$body .= 'name="'.$fname1.'"\n'. 
$body .= 'Content-Disposition: attachment;\n'; 
$body .= 'filename="'.$fname1.'"\n'; 
$body .= 'Content-Transfer-Encoding: base64\n\n'; 
$body .= $data . '\n\n'; 
$body .= '--'.$mime_boundary.'\n'; 

wp_mail($to, $subject, $body, $headers2); 
+2

Hand rollen Sie Ihre E-Mails ist wahrscheinlich ein großer Fehler. Versuchen Sie eine Bibliothek wie [PHPMailer] (https://github.com/PHPMailer/PHPMailer) am wenigsten zu verwenden. – tadman

+0

Hier, um die Verwendung von PHPMailer zu zweit und Sie nicht zu empfehlen, Ihre eigenen Header handbomben. – brandon927

+0

Das ist einfach nicht möglich in diesem Szenario, ich bin auf die Verwendung von wp_mail (Wordpress Mailer) beschränkt und das hat nicht die Möglichkeit, ein Blob als Anhang hinzuzufügen. Es kann Anhänge machen .... aber ich habe nicht die Rechte auf der Plattform, um den Blob vor dem Anhängen in eine Datei umzuwandeln. –

Antwort

0

Sie sollten die letzte Grenze mit zwei weiteren Hypes in der Nähe, so dass Ihre letzte Textzeile folgende sein soll:

$body .= '--'.$mime_boundary.'--\n';