0

こんにちは私はある人にメールを送信するときに完全に機能するphpフォームを持っていますが、別のメールアドレスを追加するとどちらのアドレスにもメールが送信されません。私はphpサイトを探していましたが、2番目の電子メールアドレスが追加された後、フォームが電子メールを拒否する理由がわかりません。

   <?php 
    function isRequestSet( $name ) { 
if ( isset ( $_REQUEST[$name] ) ) { 
    return ( $_REQUEST[$name] != "" ) ;
}
return false;
    }

    $name = "";
     if ( isRequestSet('name' ) ) { 
$name = $_REQUEST['name'];
    } 
    $number = "";
    if ( isRequestSet('number') ) { 
$number = $_REQUEST['number'];
    }
    $email = "";
    if ( isRequestSet( 'email' ) ) { 
$email = $_REQUEST['email'];
    }
     $postcode = "";
     if ( isRequestSet('postcode' ) ) { 
$location = $_REQEUST['postcode'];
     }

     $how_did_you_hear_about_us = array();
     if ( isset( $_REQUEST['how_did_you_hear_about_us'] )  ) { 
$how_did_you_hear_about_us = $_REQUEST['how_did_you_hear_about_us']; 
    }

     $message = "";
      if ( isRequestSet('message' ) ) { 
$location = $_REQEUST['message'];
      }
     $apartment_price_range = array();
      if ( isset( $_REQUEST['apartment_price_range'] )  ) { 
$apartment_price_range = $_REQUEST['apartment_price_range']; 
     }

    $url = "";{
$url = $_REQUEST['url'];
}

    $property = "";{
$property = $_REQUEST['property'];
}


    if ( ($name !="") && ($number != "") && ($email != "") && ($isspam !="yes") ) { 
$to = 'name@email.com,name@email2.com';
$from = $to;
$headers =  'From: ' . $to . "\n" .
            'Reply-To: ' . $to . "\n";
$vars = array( 'name' , 'number' , 'email' , 'postcode' , 'message' ) ;
$message = "-----------\n" ;
foreach ( $vars as $v ) { 
    $value = $_REQUEST[$v];
    $message .= "$v:\t$value\n";
}
$message .= "-----------\n" ;
$message .= "\nHow did you hear about apartments?:\n"  ;
foreach ( $how_did_you_hear_about_us as $how_did_you_hear_about_us ) { 

    $message .= "$how_did_you_hear_about_us\n" ; 
}

$message .= "-----------\n" ;
$message .= "\nApartment price range:\n"  ;
foreach ( $apartment_price_range as $apartment_price_range ) { 

    $message .= "$apartment_price_range\n" ; 
}
$subject = "From: $name <$email>";
mail( $to , $subject , $message , $headers,  "-f $from" );
$confirm = true;
//redirect to the 'thank you' page
header("Location:http://website.com/file/thankyou.php");
     } else { 
$confirm = false;
    }

    ?>
4

4 に答える 4

1

最も可能性が高いのは、From フィールドと Reply-to フィールドに複数のアドレスを使用しているためです。

$to = 'name@email.com,name@email2.com';
$from = $to;

最初のメールまたは your-service-name@you-domain-name.com のようなものを使用するように変更します

于 2012-05-31T04:58:54.687 に答える
0

メールの一部を関数にします。メールアドレスを渡すのがはるかに簡単になります。

function email_to_user($email_address){
   $to = $email_address;

   <rest of the codes>

}

メールアドレスを簡単に渡すことができます

email_to_user(name1@mail.com);
email_to_user(name2@mail.com);
于 2012-05-31T05:27:26.440 に答える
0

From と Reply-To には 1 つのアドレスのみを使用してください。

$from = 'me@my-domain.com';
$headers =  'From: ' . $from . "\n" .
            'Reply-To: ' . $from . "\n";
于 2012-05-31T05:09:56.750 に答える
0

「以下の行で、$to フィールドを配列に分割する必要があります。

mail( $to , $subject , $message , $headers,  "-f $from" );

例えば

$address_array = split(",", $to);

foreach($address_array as $address)
{
mail( $address, $subject , $message , $headers,  "-f $from" );
}

これにより、 $to string に必要な数の電子メールを含めることができます。

Nb分割行をスキップしたい場合は、$toを配列として保存するだけです

$to = array("name@email.com","name@email2.com");
于 2012-05-31T05:15:11.303 に答える