J'ai regardé plusieurs exemples, dont celui-ci .
Je reçois l'email sans problème mais il n'y a pas de pièces jointes. Suis-je absent du contenu / type de type de fichier? Tous les exemples que j'ai vus n'utilisent que du texte / html comme type de contenu.
Voici ce que j'ai (ajouté à la demande de 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 = 'Send to Kindle';
$msg = 'Yay! Your book has <a href="http://yahoo.com">arrived</a>';
$mail_attachment = array( $attachment );
wp_mail($to, $subject, $msg, $headers, $mail_attachment);
echo 'Email sent';
} else {
echo 'Email not sent';
}
Réponses:
L'
$attachment
argument pourwp_mail
prend un fichier (ou un tableau de fichiers) - mais le chemin du fichier doit être entièrement spécifié. Par exemple:( voir Codex ). Il semble que votre
$_POST['file']
ne spécifie probablement pas le chemin complet.La pièce jointe a un chemin de fichier , pas une URL. Ce qui suit a fonctionné pour moi:
Remarque: j'ai également changé l'
headers
attribut. Je ne suis pas tout à fait sûr de ce que votre exemple essayait de faire, mais cela signifiait que le message de l'e-mail n'était pas visible sur certains clients de messagerie.la source
$_Post['file']
est en fait une URL vers le fichier et j'ai confirmé que l'URL est correcte. Est-ce acceptable?