現在、PHP マルチパート メールの送信に問題があります。コードが正しいことを確認するためにオンラインで探していましたが、正しいようです。別のスタックの質問でいくつかのコードを見つけ、コードを微調整して、開発者が彼らのために働いたと言ったコードと同じであることを確認しました. 次のコードは関数の一部です。
$mime_boundary = 'Multipart_Boundary_x'.md5(time()).'x';
$headers = "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/alternative; boundary=\"$mime_boundary\"\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";
$replyto .= "reply-to: $replyto";
$body = "This is a multi-part message in mime format.\r\n\r\n";
# Plain text
$body.= "--$mime_boundary\r\n";
$body.= "Content-Type: text/plain; charset=\"charset=iso-8859-1\"\r\n";
$body.= "Content-Transfer-Encoding: 7bit\r\n";
$body.= $text_content;
$body.= "\r\n";
# HTML
$body.= "--$mime_boundary\r\n";
$body.= "Content-Type: text/html; charset=\"iso-8859-1\"\r\n";
$body.= "Content-Transfer-Encoding: 7bit\r\n";
$body.= $html_content;
$body.= "\r\n";
# End
$body.= "--$mime_boundary--\r\n";
$headers .= "From: $from\r\n";
$headers .= "X-Sender-IP: $_SERVER['SERVER_ADDR']\r\n";
$headers .= 'Date: '.date('n/d/Y g:i A')."\r\n";
$replyto .= "reply-to: $replyto";
# Return
return mail($to, $subject, $body, $headers);
これは、ほとんどのメール クライアントで機能します。Mac Thunderbird と Gmail では HTML で表示されます。ただし、Windows 7 で Thunderbird を使用している人がいて、HTML メールではなく、HTML コードが表示された HTML メールとして送信されています。
私が間違っていることはありますか?これを機能させるためにApacheで設定する必要があるものはありますか? 現時点ではこれでレンガの壁にぶつかっているだけなので、助けていただければ幸いです。