どのようにしていっぱいになったのかわかりませんが、基本的なパラメーターが欠落しており、ヘッダーの割り当てなどがあります.
mail()
機能の説明はこちらをご覧ください。HTML の自動折り返しには、wordwrap()
HTML コンテンツが 1 行にある場合、関数を使用します - メッセージの切断を防ぎます。
サンプルコード:
$from = "one@mail.com";
$mailto = "two@mail.com";
$reply = "three@mail.com";
$subject = "Test";
$message = "<html><body><strong>TEST</strong><p>Bla bla bla</p></body></html>";
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=UTF-8\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "From: $from\nReply-To: $reply\n";
$check = mail($mailto, $subject, $message, $headers);
if ($check) { echo "OK"; } else { echo "ERROR"; }
サンプル送信機能:
function sendmail($receiver, $subject, $message) {
$from = "mail@mail.com"; // sender mail
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=UTF-8\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "From: $from\n";
$check = mail($receiver, $subject, $message, $headers);
if ($check) { return true; } else { return false; }
}
または拡張サンプル送信機能:
function sendmail($receiver, $subject, $message) {
$from_mail = "mail@mail.com"; // sender mail
$from_name = "Sender Mail"; // mail name
$from = '=?UTF-8?B?'.base64_encode($from_name).'?= <'.$from_mail.'>';
$headers = "MIME-Version: 1.0\n";
$headers .= "Content-Type: text/html; charset=UTF-8\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "From: $from\n";
$check = mail($receiver, '=?UTF-8?B?'.base64_encode($subject).'?=', wordwrap($message,76,"\n"), $headers);
if ($check) { return true; } else { return false; }
}
base64_encode()
入力文字を予防的に変換し、拡張 ASCII コードまたはその他の非標準文字 (分音符号、ロゴグラムなど) に適したものにします。
wordwrap()
送信前に HTML コンテンツを予防的に分割します。単一行の HTML コンテンツにのみ適しています。標準は 1 行あたり 76 文字です ( chunk_splitを参照)。SMTP サーバーは 1 行あたり少なくとも 1,024 文字をサポートする必要があります。サポートされていない場合は、自分で設定する必要があります。