1

以下のコード スニペットを使用して、php メール機能を介してメールを送信しています。

$mailsent = mail($to_address, $subject, $message, $headers);

    if ($mailsent) 
        return "mail send";
    else
        return "error";

$mailsentメールが正常に送信されたかどうかを判断するために、変数のブール値をチェックしています。これは、php メール関数によって送信されたメールのステータスを確認する正しい方法ですか。どんな助けでも大歓迎です.Thanks

4

2 に答える 2

1

はい、これは正しいプラクティスです。これはフェイル セーフ プラクティスの一部です。メールが正常に送信されたかどうかを判断するには、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!";

}
?>
于 2013-08-21T07:29:13.463 に答える