2017-03-01 133 views
0

任何人都可以告诉我在哪里出错了吗?我正在从数据库中的blob向电子邮件添加附件。我假设这个标题格式不正确,但已经花了整整一天的时间,但仍然无法让它工作!电子邮件标题格式(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

手卷您的电子邮件可能是一个巨大的错误。尽量使用像[PHPMailer](https://github.com/PHPMailer/PHPMailer)这样的库。 – tadman

+0

这里第二次使用PHPMailer并建议你不要手动炸弹自己的头文件。 – brandon927

+0

这只是在这种情况下不可能的,我被限制使用wp_mail(WordPress的邮件程序),并没有能力添加一个blob作为附件。它可以做附件....但我没有平台上的权利,在连接之前将blob变成文件。 –

回答

0

您应该关闭与两个炒作的最后边界,所以你最后的车身线条应该是以下几点:

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