Patrzyłem na wiele przykładów, w tym ten jeden .
Otrzymuję e-mail bez problemu, ale nie ma załączników. Czy brakuje mi zawartości / typu typu pliku? Wszystkie przykłady, które widziałem, używają tylko text / html jako typu zawartości.
Oto co mam (dodane na prośbę Stephena)
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';
}
Odpowiedzi:
$attachment
Argumentemwp_mail
bierze plik (lub pliki) tablicę - ale ścieżka do pliku musi być w pełni określony. Na przykład:( patrz Kodeks ). Wygląda na to, że
$_POST['file']
prawdopodobnie nie określasz pełnej ścieżki.Załącznik musi zawierać ścieżkę do pliku , a nie adres URL. Dla mnie działało:
Uwaga: zmieniłem również
headers
atrybut. Nie jestem do końca pewien, co próbujesz zrobić, ale przykład oznaczał, że wiadomość e-mail nie była widoczna na niektórych klientach e-mail.źródło
$_Post['file']
to właściwie adres URL pliku i potwierdziłem, że adres URL jest poprawny. Czy to jest dopuszczalne?