PHP メールを使用して CSV ファイルを送信しようとしています。これは、二重の改行エラーを引き起こすバージョンです (サーバー エラー ログから取得):
$content = base64_encode($content);
$uid = md5(uniqid(time()));
$header = "From: ".$from_name." <".$from_mail.">\r\n";
$header .= "Reply-To: ".$replyto."\r\n";
$header .= "Content-type:text/plain; charset=utf-8\r\n";
$header .= "Content-Transfer-Encoding: 7bit\r\n";
$header .= $message."\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";
$header .= $content."\r\n";
$header .= "--".$uid."--";
if (!mail($mailto, $subject, "", $header)) {
echo "mail send ... ERROR!";
}
「chunk_split」を削除すると、エラーは発生しませんが、受信者のメール サーバーはそれを受け入れません (つまり、受信トレイにもスパムにも表示されません)。
注意: 「二重改行エラー」コードは、以前のホスティングでは機能していましたが、新しいホスティングでは機能しません。