0

私のウェブサイトには、メールを送信するさまざまなフォームがあります。これらのフォームにはそれぞれ独自の.phpファイルがあるので、メールを送信するphpファイルが1つしかない場合は良い考えだと思いました。

私がこれを行うことを計画している方法は、一意のIDを持つフォームに非表示の入力を含めることです。phpはそのIDを取得し、IDが何に等しいかに応じて、phpは別の電子メールを私に送信します。

これが私が使用しているコードです:

<?php
$to .= 'myemailadress@mydomain.com';

$feedback_page = "feedback.html";
$error_page = "error_message.html";
$thankyou_page = "thank_you.html";

$form_id = $_REQUEST['form_id'] ; /* This is what will determine the email message */

$first_name = $_REQUEST['first_name'] ; /*This is what picks up what the person wrote */
$last_name = $_REQUEST['last_name'];
$email_adress = $_REQUEST['emai_address'];

if (!isset($_REQUEST['email_address'])) {
header( "Location: $feedback_page" );
}

elseif (empty($email_adress)) {
header( "Location: $error_page" );
}

else {
    $mailmsg = "
    Name: $first_name $last_name
    Email: $email_address
    ";

$headers .= 'From: forms@mydomain.com' . "\r\n";
$headers .= 'Bcc: otheremail@mydomain.com' . "\r\n";

mail( "$to", $form_name , $mailmsg , $headers );
header( "Location: $thankyou_page" );
}
?>

私が言及したID入力に応じて送信する電子メールメッセージを変更するこのコードに何を追加できますか?

コードを入力しているときに、これを行う1つの可能な方法は、$mailmsg1や$mailmsg2などのさまざまな電子メールメッセージを設定し、mail()内に、送信するメールメッセージを決定するいくつかの変数を設定することだと思いました。よろしくお願いします。

4

4 に答える 4

1

それに応じて設定するPHPswitchステートメントで実装し$mailmsgます。このようなもの(テストされていません):

switch ($form_id) {
    case "1":
        $mailmsg="Something"; // Message 1
        break;
    case "2":
        $mailmsg="Something else"; // Message 2
        break;
    default:
        $mailmsg="Default message";
        break;

また、以下のリクエストにタイプミスがあるかもしれません。

$email_adress = $_REQUEST['emai_address'];
于 2013-03-12T15:39:11.740 に答える
0

最も基本的な変更if..elseは、メッセージ本文テキストを設定する部分にを配置$form_idし、非表示の入力要素に設定したフォーム ID をテストすることです。

ここには最後の部分のみを含めました。

// ... first part of the code ommited
else
{
   if($form_id === SOME_ID_1)
   {
        // set here the message for form id 1

        $mailmsg = "
            Name: $first_name $last_name
            Email: $email_address
        ";
   }else if($form_id === SOME_ID_2)
   {
        // set here the message for form id 2
        $mailmsg = "
           ... WHATEVER MESSAGE YOU'D LIKE FOR FORM 2
        ";
   }else{
        // set here a default message if you want or redirect to error page

   }

   $headers .= 'From: forms@mydomain.com' . "\r\n";
   $headers .= 'Bcc: otheremail@mydomain.com' . "\r\n";

   mail( "$to", $form_name , $mailmsg , $headers );
   header( "Location: $thankyou_page" );
}

しかし、おそらくもっと優れた抽象化は、電子メールを送信するために使用するすべてのコードを実際に関数に移動し、それを異なるメッセージや件名に応じて呼び出すことです。$form_id

于 2013-03-12T15:37:30.917 に答える
0

送信先の正しいメールアドレスを選択する switch case ステートメントを作成できます。

$mailMessage = "";
switch ($form_id) {
    case 0:
        $mailMessage += "Hello Son,";
        $mailMessage += "Goodbye";
        break;
    case 1:
        //Same here as above
        break;
    case 2:
        //Same here as case 0
        break;
}

mail( "$to", $form_name , $mailMessage, $headers );

幸運を!

于 2013-03-12T15:39:41.170 に答える
0

同じフォームにポストバックしてフォームを検証し、そこでメッセージを生成する方がはるかにクリーンです。その時点から、使用することを決定した任意の電子メール処理スクリプトにメッセージを送信できます。

于 2013-03-12T15:40:27.347 に答える