2015-02-24 138 views
0

我是新的WordPress的。我正在嘗試發送帶有附件的郵件。但每次發送郵件但附件都不是。我在這裏搜索了幾乎所有與這個主題相關的帖子,但所有的解決方案都失敗了。我檢查了很多次路徑,發現從「uploads」文件夾是正確的。請幫幫我。這是我的代碼,郵件發送但附件沒有收到wp_mail()

<?php 

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

$to = $_POST['email']; 
$pdf = $_POST['pdf']; 

$subject = "Presidency Alumni Annual Report"; 
$message = "Please download the attachment."; 
$headers = 'From: Presidency Alumni Association Calcutta <[email protected]>' . "\n"; 

if($pdf == 'a'){ 

$attachments = array(WP_CONTENT_DIR . 'uploads/2015/01/Coffee-Mug-Banner.jpg'); 
} 
else if($pdf == 'b'){ 

$attachments = array(WP_CONTENT_DIR . 'uploads/2014/08/Alumni-Autumn-Annual-2014.pdf'); 
} 
else{ 

$attachments = array(WP_CONTENT_DIR . 'uploads/2014/08/Autumn-Annual-2012.pdf'); 
} 

wp_mail($to, $subject, $message, $headers, $attachments); 

print '<script type="text/javascript">'; 
print 'alert("Your Mail has been sent successfully")'; 
print '</script>'; 
} 
?> 
+0

考慮鏈接到您嘗試的答案並解釋他們爲什麼沒有工作。 – 2015-02-24 16:08:32

回答

0

這種情況發生的最可能原因是條件爲if($pdf == 'a') {...} else if ($pdf == 'b') {...})不正確。檢查這個變量pdf是否在您的後HTML表單中正確設置。

還要確保不斷WP_CONTENT_DIR包含的東西,即不爲空字符串,否則您的附件路徑將是無效的,也就是說,它是更好地訪問你這樣的上傳目錄:

<?php $upload_dir = wp_upload_dir(); ?>

$upload_dir現在包含類似如下(如果成功):

Array (
    [path] => C:\path\to\wordpress\wp-content\uploads\2010\05 
    [url] => http://example.com/wp-content/uploads/2010/05 
    [subdir] => /2010/05 
    [basedir] => C:\path\to\wordpress\wp-content\uploads 
    [baseurl] => http://example.com/wp-content/uploads 
    [error] => 
) 

然後,修改代碼:

$attachments = array($upload_dir['url'] . '/2014/08/Autumn-Annual-2012.pdf');

documentation

相關問題