簡體   English   中英

如何在php中僅向選定用戶的電子郵件發送多個電子郵件?

[英]How to send multiple emails to only selected user's emails in php?

我試圖只向我使用同一index.php頁面中的復選框選擇的用戶發送電子郵件。 我在這里嘗試嘗試一些方法,但我不知道如何將已檢查的電子郵件傳輸並保存到“密件抄送”字段。 這是我的代碼,請看一下!

電子郵件的PHP代碼(index.php):

<?php
if (isset($_POST['submit'])) 
{

    $name = $_POST['name'];
    $email = $_POST['email'];
    $subject = $_POST['subject'];
    $comments = $_POST['comments'];

    $to = "";

    $headers = "From:$name<$email>";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
    $headers .= "Bcc: $selectedemailsall\r\n";

    $message = "Name: $name\n\n Email: $email \n\n Subject : $subject \n\n Message : $comments";
    if(mail($to,$subject,$message,$headers))
    {
        echo "Email Send";
    }
    else
    {
        echo "Error : Please Try Again !";
    }
 }
 ?>

表單代碼(index.php):

 <!DOCTYPE html>
 <head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  <title>Mail Document</title>
 </head>
 <body>

 <form action="" method="post" >
 <p>Name :<br>
 <input type="text" name="name" id=""></p>
 <p>Email :<br>
 <input type="text" name="email" id=""></p>
 <p>Subject :<br>
 <input type="text" name="subject" id=""></p>
 <p>Comments :<br>
 <textarea name="comments" id="" cols="30" rows="10"></textarea></p>
 <p><input type="submit" value="Send Email" name="SubmitEmail"></p>
 </form>    

 <form action="#" method="post">
 <?php
 error_reporting(E_ERROR | E_PARSE);
 $connection = mysqli_connect("localhost","root", "");
 $db = mysqli_select_db("testdb", $connection);
 $query = mysqli_query("select * from users", $connection);

 while ($row = mysqli_fetch_array($query)) 
{
 echo "
 <input type='checkbox' name='check_list[]' value='{$row['email']}'>
 <label>{$row['username']}</label><br/>
 ";
}
?>

<?php
if(isset($_POST['submituserchk']))
{
  //to run PHP script on submit
  if(!empty($_POST['check_list']))
{
  // Loop to store and display values of individual checked checkbox.
  foreach($_POST['check_list'] as $selectedemails)
  {
    $selectedemailsall = $selectedemails.",";
    //echo $selectedemailsall;
  }
 }
}
?>
</div> <!-- End of RightUsersDivWithCheckBox -->
 <input type="submit" name="submituserchk" style="margin-left: 87%; margin-top: 20px;" value="Done"/>
</form>
</body>
</html>

有什么解決辦法請怎么做? 現在,當我單擊“完成”並提交電子郵件時,什么也沒有發生,並且我不想在選擇電子郵件后單擊“完成”按鈕。 我只選擇電子郵件,然后轉到變量中的“密件抄送”字段。

不要對許多用戶使用Bcc標頭。 喲可以做的是:

您的表格:

...
<input type="checkbox" name="email[]" value="foo@host.tld"> - foo@host.tld
<input type="checkbox" name="email[]" value="bar@host.tld"> - bar@host.tld
<input type="checkbox" name="email[]" value="baz@host.tld"> - baz@host.tld
...

您的后端代碼:

...
if (array_key_exists('email', $_POST) && is_array($_POST['email'])) {
    foreach ($_POST['email'] as $to) {
        mail($to, $subject, $message, $headers);
    }
}
...

為所有收件人單獨發送的所有電子郵件。 這對於您的應用程序來說是靈活的情況-您可以檢查每個發送狀態。

終於我得到了我自己問題的答案。 下面是我的代碼,

顯示用戶名,帶有來自數據庫的復選框的電子郵件:

$getemail = mysqli_query("SELECT * FROM users",$connection);
if(!$getemail) die('MsSQL Error: ' . mysqli_error());
echo '<div class="AllUserDiv" style="overflow-y:scroll;height:400px;"><table class="table table-bordered">';
echo "<thead>
    <tr>
    <th><input type='checkbox' onchange='checkedbox(this)' name='chk' /> </th>
    <th>Username</th>
    <th>Email</th>
    </tr>
    </thead>";

 if(mysqli_num_rows($getemail) == 0)
 {
   echo "<tbody><tr><td colspan='3'> No Data Available</td></tr></tbody>"; 
 }

while($row = mysqli_fetch_assoc($getemail))
{
  echo "<tbody><tr><td><input value='".$row['email']."' type='checkbox' name='check[]' checked /> </td>";
  echo "<td>".$row['username']."</td>";
  echo "<td>".$row['email']."</td></tr></tbody>";   
}

電郵表格:

<form method="post" action="">
<p style="margin-top:30px;">Email Subject: <input type="text" name="subject" value="" class="form-control" /></p>
<p>Email Content: <textarea name="message" cols="40" rows="6" style="width:100%;"></textarea></p>
<center><input type="submit" name="submit" value="Send Email Now" class="btn btn-primary btn-block" />
</form>

用於選擇復選框的JavaScript:

<script type="text/javascript" language="javascript">
 function checkedbox(element)
 {
  var checkboxes = document.getElementById('input');
  if(element.checked)
  {
    for (var i = 0; i < checkboxes.length; i++ )
    {
        if(checkboxes[i].type == 'checkbox')
        {
            checkboxes[i].checked = true;
            }
        }
    }
    else
    {
        for (var i = 0; i < checkboxes.length; i++)
        {
            console.log(i)
            if(checkboxes[i].type == 'checkbox')
            {
                checkboxes[i].checked = false;
                }
            }
        }
     }
 </script>

暫無
暫無

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

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