発生している問題・エラーメッセージ
https://gray-code.com/php/make-the-form-vol9/
上記サイトを真似てPHPにてフォームを作り、メールを送信した所、
受信側のメーラーがOutlook2013の場合、本来のメール以外に無題の添付ファイルが添付されてしまいます。
該当のソースコード
a.php メール部分
$from = null; $body = null; $admin_reply_subject = null; $admin_reply_text = null; $returnpath = null; //アドレス $to = "xxx@---.com"; $from = "MIME-Version: 1.0\n"; $from = "Content-Type: multipart/mixed;boundary=\"__BOUNDARY__\"\n"; $from .= "From:".$clean['email']."\n"; $from .= "Reply-To:".$clean['email']."\n"; $returnpath = '-f '.$clean['email']; //件名 $admin_reply_subject = '件名'; //本文 $admin_reply_text = "本文\n\n"; $admin_reply_text .= "名前:".$clean['your_name']."\n"; $admin_reply_text .= "メールアドレス:".$clean['email']."\n"; //テキストメッセージをセット $body = "--__BOUNDARY__\n"; $body .= "Content-Type: text/plain; charset=\"ISO-2022-JP\"\n\n"; $body .= $admin_reply_text . "\n"; $body .= "--__BOUNDARY__\n"; //ファイルを添付 if( !empty($clean['attachment_file']) )
{
$body .= "Content-Type: application/octet-stream; name="{$clean['attachment_file']}"\n";
$body .= "Content-Disposition: attachment; filename="{$clean['attachment_file']}"\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "\n";
$body .= chunk_split(base64_encode(file_get_contents(FILE_DIR.$clean['attachment_file'])));
$body .= "--BOUNDARY\n";
}
mb_send_mail( $to, $admin_reply_subject, $body, $from);
試したこと
入力フォームの添付ファイルの有無に問わず、Outlook2013でメールを受信した場合、必ず無題の添付ファイルも送信されているようです。
yahooなど別のメールアドレスで受信した場合は、無題の添付ファイルは受信していないようでした。
Outlookの問題なのでしょうか?
補足情報(FW/ツールのバージョンなど)
Windows7
PHP7.2
Outlook2013
回答1件
あなたの回答
tips
プレビュー