2016-09-29 108 views
0

使用wp_mail()處理電子郵件和附件。如果上傳的附件暫時存儲並且發送郵件後刪除,我寧可選擇。目前,上傳/附件被保存在服務器上。如何防止這一點?Wordpress wp_mail臨時保存附件並在發送電子郵件後刪除

if(isset($_POST[ 'Save' ])) { 

function my_custom_email_content_type($content_type) { 
    return 'text/html'; 
} 

if (! function_exists('wp_handle_upload')) { 
    require_once(ABSPATH . 'wp-admin/includes/file.php'); 
} 

$files = $_FILES[ 'my_files' ]; 
$upload_overrides = array('test_form' => false); 

$attachments = array(); 

foreach ($files['name'] as $key => $value) { 
    if ($files[ 'name' ][ $key ]) { 
     $file = array(
      'name'  => $files[ 'name' ][ $key ], 
      'type'  => $files[ 'type' ][ $key ], 
      'tmp_name' => $files[ 'tmp_name' ][ $key ], 
      'error' => $files[ 'error' ][ $key ], 
      'size'  => $files[ 'size' ][ $key ] 
     ); 
     $movefile = wp_handle_upload(
      $file, 
      $upload_overrides 
     ); 
     $attachments[] = $movefile[ 'file' ]; 
    } 
} 

$to  = '[email protected]'; 
$subject = 'Contact Us'; 
$message = 'Haiii'; 
$headers[] = 'From: ' . get_option('blogname') . ' <[email protected]>'; 

add_filter(
    'wp_mail_content_type', 
    'my_custom_email_content_type' 
); 
$wp_mail_return = wp_mail(
    $to, 
    $subject, 
    $message, 
    $headers, 
    $attachments 
); 
if($wp_mail_return) { 
    echo 'Mail send'; 
} else { 
    echo 'Failed'; 
} 
remove_filter(
    'wp_mail_content_type', 
    'my_custom_email_content_type' 
); 
} 

回答

1

你關心它是否成功發送?

如果沒有,那麼就這樣做:

if($wp_mail_return) { 
    echo 'Mail send'; 
} else { 
    echo 'Failed'; 
} 

// Loops over the attachments (per your array), and removes the file 
foreach ((array)$attachments AS $file) { 
    unlink($file); 
} 

如果你只是想,如果它發送成功完成這件事,只是將它你的,如果條件中:

if($wp_mail_return) { 
    echo 'Mail send'; 
    // Loops over the attachments (per your array), and removes the file 
    foreach ((array)$attachments AS $file) { 
     unlink($file); 
    } 
} else { 
    echo 'Failed'; 
} 
+0

不取消鏈接只是DELET文件名?也許我錯了。 –

+0

它的確如此。但是,我不認爲有文章與文檔相關,基於文檔:https://codex.wordpress.org/Function_Reference/wp_handle_upload –