Я смотрел на несколько примеров, включая этот .
Я получаю письмо без проблем, но вложения отсутствуют. Я пропускаю содержимое / тип файла? Во всех примерах, которые я видел, в качестве типа контента используется только text / html.
Вот что у меня есть (добавлено по запросу Стивена)
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';
}
Ответы:
$attachment
Аргументwp_mail
принимает файл (или массив файлов) - но путь к файлу должен быть полностью определен. Например:( см. Кодекс ). Похоже, что вы
$_POST['file']
, вероятно, не указываете полный путь.Вложение имеет путь к файлу , а не URL. Следующее работало для меня:
Примечание: я
headers
тоже изменил атрибут Я не совсем уверен, что вы пытались сделать на примере, но это означало, что сообщение электронной почты не было видно на некоторых почтовых клиентах.источник
$_Post['file']
на самом деле это URL-адрес файла, и я подтвердил, что URL-адрес правильный. Это приемлемо?