はい、これは正しいプラクティスです。これはフェイル セーフ プラクティスの一部です。メールが正常に送信されたかどうかを判断するには、mail() が true を返すかどうかを確認する必要があります。
メールがサーバーから中継された場合、つまりサーバーから送信されたメールの場合は true を返すことに加えて、Akam のコメントに同意します。メールが正常に配信される必要はありません (これにより、メールが送信されたことが確認されます)。
送信時にこのメールのみが送信されることを確認する長いスニペットを提供しました。これは無視してかまいません..
<?php
if(isset($_POST['submit'])) {
$to = "testreceiver@mail.com";
$subject = "Portfolio Contact";
$name_field = $_POST['name'];
$email_field = $_POST['email'];
$message = $_POST['message'];
$headers = "From: $email_field";
$body = "From: $name_field\n E-Mail: $email_field\n Message:\n $message";
$success = mail($to, $subject, $body, $headers);
if ($success) {
echo "Mail has been sent!!!!";
// redirect to thank you page here
}
else {
echo "Message failed";
}
} else {
echo "Malfunction alert!";
}
?>