添付ファイルのメールに問題があります。 ヘッダーにすべて含まれるhtml(テキストとして解析される)およびfile(テキストとしても解析される)を含むヘッダーは、メッセージ本文として表示されます。このコードはうまくいきましたが、私は何が変わったのか理解できません。メール本文に表示されるメールヘッダー、ファイルなし、HTMLなし
ランダムな要素がありますが、メールが正しく到着することはありますが、メールが破損して動作するようなパターンがあるとは思われません。
これがメールを生成するために私のコードです:
$file = $path.$filename;
$file_size = filesize($file);
$handle = fopen($file, "r");
$content = fread($handle, $file_size);
fclose($handle);
$content = chunk_split(base64_encode($content));
$uid = md5(uniqid(time()));
$name = basename($file);
$header .= "MIME-Version: 1.0\r\n";
$header .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$header .= "This is a multi-part message in MIME format.\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: text/html; charset=utf-8\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
$header .= "--".$uid."\r\n";
$header .= "Content-Type: application/octet-stream; name=\"".$filename."\"\r\n";
// use different content types here
$header .= "Content-Transfer-Encoding: base64\r\n";
$header .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$header .= $content."\r\n\r\n";
$header .= "--".$uid."--";
$mailto = '[email protected]';
if (mail($mailto, $subject, "", $header)) {
echo "1"; // or use booleans here
} else {
echo "mail send ... ERROR!";
}
私はすべてのヘッダを削除しようとした、そしてそれが動作すること、次のヘッダーでのみ残っていた。
$header .= "Content-Type: text/html; charset=utf-8\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$header .= $message."\r\n\r\n";
ので、そのかなりusless 、multipart/attachment/anythingはありませんが、HTMLは解析されます。
何がヘッダを壊す可能性がありますか? ありがとう!
OK、今は恥ずかしいですが、あなたは正しいです:)。 $ headers = '';を追加しようとしました。私はunset($ headers)をしようとしましたが、どちらもうまくいきませんでしたので、それを取り除くことさえ考えませんでした。本当にありがとう、それは実際に働いた - 私は 'を削除しました。 。=そしてすべてが今良いです。私は少しも過小評価しません。再び... – Yanipan