Ich habe mir mehrere Beispiele angesehen, darunter dieses .
Ich bekomme die E-Mail kein Problem, aber es gibt keine Anhänge. Fehlt mir der Inhalt / Typ des Dateityps? Alle Beispiele, die ich gesehen habe, verwenden nur Text / HTML als Inhaltstyp.
Folgendes habe ich (auf Stephens Bitte hinzugefügt)
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';
}
Antworten:
Das
$attachment
Argument fürwp_mail
nimmt eine Datei (oder ein Array von Dateien) - der Dateipfad muss jedoch vollständig angegeben werden. Zum Beispiel:( siehe Codex ). Es scheint, dass Sie
$_POST['file']
wahrscheinlich nicht den vollständigen Pfad angeben.Der Anhang muss einen Dateipfad und keine URL enthalten. Folgendes hat bei mir funktioniert:
Hinweis: Ich habe auch das
headers
Attribut geändert . Ich bin nicht ganz sicher, was Ihr Beispiel versucht hat, aber es bedeutete, dass die Nachricht der E-Mail auf einigen E-Mail-Clients nicht sichtbar war.quelle
$_Post['file']
ist eigentlich eine URL zu der Datei und ich habe bestätigt, dass die URL korrekt ist. Ist das akzeptabel?