如何使变量发送不同的电子邮件?

时间:2013-03-12 15:32:49

标签: php

我的网站上有不同的表单,向我发送电子邮件。这些表单中的每一个都有自己独立的.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()中放入一些确定发送邮件的变量。感谢您的帮助。

4 个答案:

答案 0 :(得分:1)

我使用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'];

答案 1 :(得分:0)

您可以进行的最基本的更改是在设置邮件正文文本的部分中放置if..else,并为隐藏的输入元素中设置的表单ID测试$form_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

答案 2 :(得分: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 );
祝你好运!

答案 3 :(得分:0)

回到同一个表单,验证表单并在那里生成消息会更加清晰。从那时起,您可以将消息发送到您决定使用的任何电子邮件处理脚本。