O argumento $attachment
para wp_mail
recebe um arquivo (ou matriz de arquivos) - mas o caminho do arquivo deve ser totalmente especificado. Por exemplo:
<?php
$attachments = array(WP_CONTENT_DIR . '/uploads/file_to_attach.zip');
$headers = 'From: My Name <[email protected]>' . "\r\n";
wp_mail('[email protected]', 'subject', 'message', $headers, $attachments);
?>
( veja o Codex ). Parece que seu $_POST['file']
provavelmente não está especificando o caminho completo.
O anexo tem um caminho de arquivo , não um URL. O seguinte funcionou para mim:
$to = $_POST['to'];
$from = $_POST['from'];
$name = get_bloginfo('name');
$headers = 'From: My Name <[email protected]>' . "\r\n";
$subject = 'Send to Kindle';
$msg = 'Yay! Your book has <a href="http://yahoo.com">arrived</a>';
$mail_attachment = array(WP_CONTENT_DIR . '/uploads/2012/03/image.png');
wp_mail($to, $subject, $msg, $headers, $mail_attachment);
Nota: também alterei o atributo headers
. Não tenho certeza do que seu exemplo estava tentando fazer, mas isso significava que a mensagem do e-mail não estava visível em alguns clientes de e-mail.