簡體   English   中英

如何使變量發送不同的電子郵件?

[英]How can I make variables to send different e-mail messages?

我的網站上有不同的表格可以向我發送電子郵件。 這些表格中的每一個都有自己的單獨的.php文件,所以我認為如果我只有一個單獨的php文件向我發送電子郵件,那將是一個好主意。

我計划執行此操作的方式是在表單上具有唯一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輸入更改發送的電子郵件?

當我輸入代碼時,我認為一種可行的方法是設置不同的電子郵件,例如$ mailmsg1或$ mailmsg2,並在mail()的內部放入一些變量,這些變量確定發送什么郵件。 謝謝您的幫助。

我會用一個PHP switch語句來實現它,該語句相應地設置了$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'];

您可能要做的最基本的更改是在要設置消息正文文本的部分中放置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用不同的消息和/或主題進行調用

您可以制作一個切換案例聲明,選擇要發送到的正確電子郵件地址:

$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 );

祝好運!

只需將其發回到您的相同表單,驗證表單並在其中生成消息,將會更加干凈。 從那時起,您可以將郵件發送到您決定使用的任何電子郵件處理腳本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM