添付ファイル付きのwp_mailを使用するが、添付ファイルを受信しない


15

私はこれを含む複数の例を見てきました。

メールは問題ありませんが、添付ファイルはありません。ファイルタイプのコンテンツ/タイプがありませんか?私が見たすべての例では、コンテンツタイプとして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';
}

あなたが試したことに関するいくつかのコードを投稿できますか?
スティーブンハリス

こんにちはスティーブン、コードで投稿を更新しました。ありがとうございました!
tbm 2012

回答:


27

$attachment引数wp_mailはファイル(またはファイルの配列)を取りますが、ファイルパスは完全に指定する必要があります。例えば:

<?php
   $attachments = array(WP_CONTENT_DIR . '/uploads/file_to_attach.zip');
   $headers = 'From: My Name <myname@mydomain.com>' . "\r\n";
   wp_mail('test@test.com', 'subject', 'message', $headers, $attachments);
?>

コーデックスを参照)。$_POST['file']おそらくフルパスを指定していないようです。

添付ファイルは、URLではなく、ファイルパスでなければなりません。以下は私のために働きました:

$to = $_POST['to'];
$from = $_POST['from']; 
$name = get_bloginfo('name');

$headers = 'From: My Name <myname@mydomain.com>' . "\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属性も変更しました。あなたの例が何をしようとしていたのか完全にはわかりませんが、それは一部のメールクライアントでメールのメッセージが表示されなかったことを意味します。


フォローしてくれてありがとうStephen ... ok $_Post['file']は実際にはファイルのURLであり、URLが正しいことを確認しました。それは受け入れられますか?
tbm 2012

いいえ、更新された回答を参照してください:)
Stephen Harris

つまり、Amazon S3などの他の場所でホストされている添付ファイルを送信することはできませんか?怖かったです。私は人々にウェブページから直接PDFをKindleに電子メールで送信するオプションを提供しようとしています。とにかく、これを後で試し、また報告します。
tbm 2012

リモートファイルを読み取ってから添付できますか?ここに例があります。正確にどのようにそれを行うことができるか/ベストプラクティスは、SOの問題になります。
スティーブンハリス

どうもありがとうございました。Stephenがあなたのソリューションを試してみましたが、うまくいきました。今...他の場所でホストされている添付ファイルを送信する方法を理解する必要があります。どこを見ればいいのか、ポインタをありがとう!
tbm
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.