Utilizzo di wp_mail con allegati ma nessun allegato ricevuto
Ho esaminato diversi esempi incluso questo.
Ricevo l'email senza problemi ma non ci sono allegati. Mi sto perdendo il content/type del tipo di file? Tutti gli esempi che ho visto utilizzano solo text/html come tipo di contenuto.
Ecco cosa ho (aggiunto su richiesta di Stephen)
if( isset( $_POST['to'] ) && isset( $_POST['from'] ) ) {
global $wpdb;
$to = $_POST['to'];
$from = $_POST['from'];
$name = get_bloginfo('name');
$attachment = $_POST['file'];
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: multipart/mixed; charset=iso-8859-1' . "\r\n";
$headers .= 'From: ' . $name . ' <' . $from . '>' . "\r\n";
$subject = 'Invia su Kindle';
$msg = 'Evviva! Il tuo libro è <a href="http://yahoo.com">arrivato</a>';
$mail_attachment = array( $attachment );
wp_mail($to, $subject, $msg, $headers, $mail_attachment);
echo 'Email inviata';
} else {
echo 'Email non inviata';
}

L'argomento $attachment
per wp_mail
accetta un file (o un array di file) - ma il percorso del file deve essere specificato completamente. Ad esempio:
<?php
$attachments = array(WP_CONTENT_DIR . '/uploads/file_to_attach.zip');
$headers = 'From: Il Mio Nome <mionome@miodominio.com>' . "\r\n";
wp_mail('test@test.com', 'oggetto', 'messaggio', $headers, $attachments);
?>
(vedi Codex). Sembra che il tuo $_POST['file']
probabilmente non stia specificando il percorso completo.
L'allegato deve essere un percorso del file, non un URL. Il seguente codice ha funzionato per me:
$to = $_POST['to'];
$from = $_POST['from'];
$name = get_bloginfo('name');
$headers = 'From: Il Mio Nome <mionome@miodominio.com>' . "\r\n";
$subject = 'Invia a Kindle';
$msg = 'Evviva! Il tuo libro è <a href="http://yahoo.com">arrivato</a>';
$mail_attachment = array(WP_CONTENT_DIR . '/uploads/2012/03/image.png');
wp_mail($to, $subject, $msg, $headers, $mail_attachment);
Nota: Ho modificato anche l'attributo headers
. Non sono completamente sicuro di cosa stesse cercando di fare il tuo esempio, ma faceva sì che il messaggio dell'email non fosse visibile su alcuni client di posta elettronica.

Grazie Stephen per il follow-up... ok $_Post['file']
è in realtà un URL al file e ho confermato che l'URL è corretto. È accettabile?

Significa che non posso far loro inviare un allegato che è ospitato altrove, ad esempio Amazon S3? Temevo questo. Sto solo cercando di dare alle persone l'opzione di inviare un PDF a Kindle direttamente da una pagina web. Comunque proverò più tardi e farò sapere.

Potresti leggere il file remoto e poi allegarlo? C'è un esempio qui. Come esattamente puoi farlo / le best practice sarebbe una domanda per SO.
