2015-02-24 72 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

相关问题