3

わかりました。私はphpコーディングに不慣れで、フォームメールphp(コンテンツがメールアドレスにメールで送信されるフォーム)に取り組んでいます。コードは正常に機能します。メールの成否を訪問者に通知する方法があるかどうか知りたいのですが。(フォームページに「成功」​​または「失敗を再試行」という行を動的に追加します。十分に明確になっていることを願っています。

これがコードです

    <?php

    $name = $_POST["name"]; 

    $company = $_POST["company"]; 

    $email = $_POST["email"]; 

    $contact =$_POST["contact"]; 

    $require = $_POST["requirement"]; 


    $message = "Name :".$name."\n"."Company  :".$company."\n"."Email id".$email."\n"."Contact no :".$contact."\n"."Requirement : ".$require;

    $subject ="Subject Matter Here";

    $to = "abc@xyz.com";

    if(mail($to, $subject,$message)){
echo "We Received Your enquiry, We'll get back to you soon";
     } 
      else{ 
echo "there were some errors sending enquiry, please try again";
     }




      ?>
4

3 に答える 3

3
$send = mail($to, $subject, $message);

if(!$send){
    echo 'Failed to send!';
}

メール機能:

メールの配信が正常に受け入れられた場合はTRUEを返し、それ以外の場合はFALSEを返します。

于 2012-10-22T10:27:37.483 に答える
0

mail関数は、成功を示すブール値を返します。

$result = mail(...)
if ($result) {
    echo 'Success';
} else {
    echo 'Failure try again';
}

mail()がfalseを返す場合、電子メールが送信されないことは確かです。mail()がtrueを返す場合、メールサーバーは電子メールメッセージを受け入れていますが、それでも配信されない可能性があります。メールサーバーが別のメールサーバーに送信しようとすると、メッセージが拒否される場合があります。バウンスメッセージが表示されますが、これはすぐには発生しないため、フォームに結果を表示することはできません。

電子メールが確実に配信されるようにしたい場合は、自分で宛先ホストに接続する必要があります。ドメインのMXレコードを取得し、STMPサーバーに接続して、宛先サーバーに直接送信します。

于 2012-10-22T10:30:04.427 に答える
0

ここここを見てみてください

そしてそれをそのように使用します:

if (!mail(...)) {// Reschedule for later try or panic appropriately!}

mail() returns TRUE if the mail was successfully accepted for delivery, FALSE otherwise.

メールの配信が承認されたからといって、メールが実際に目的の宛先に到達するわけではないことに注意してください。

于 2012-10-22T10:32:13.630 に答える