これ - を含む複数の例を見てきました。
私は電子メールを問題なく受け取りますが、添付ファイルはありません。ファイルタイプの内容/タイプが欠落していますか?これまで見てきたすべての例では、コンテンツタイプとして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
引数はファイル(またはファイルの配列)を取ります - しかしファイルパスは完全に指定されなければなりません。例えば:
<?php
$attachments = array(WP_CONTENT_DIR . '/uploads/file_to_attach.Zip');
$headers = 'From: My Name <[email protected]>' . "\r\n";
wp_mail('[email protected]', 'subject', 'message', $headers, $attachments);
?>
( コーデックスを参照 )。あなたの$_POST['file']
はおそらくフルパスを指定していないようです。
添付ファイルは、URLではなく ファイルパス を持つ必要があります。以下は私のために働いた:
$to = $_POST['to'];
$from = $_POST['from'];
$name = get_bloginfo('name');
$headers = 'From: My Name <[email protected]>' . "\r\n";
$subject = 'Send to Kindle';
$msg = 'Yay! Your book has <a href="http://yahoo.com">arrived</a>';
$mail_attachment = array(WP_CONTENT_DIR . '/uploads/2012/03/image.png');
wp_mail($to, $subject, $msg, $headers, $mail_attachment);
注: headers
属性も変更しました。あなたの例が何をしようとしているのか完全にはわかりませんが、それはその電子メールのメッセージが一部の電子メールクライアントに表示されなかったことを意味します。