PHP 发送电子邮件 foreach - 发送至

2023-12-30

我正在使用脚本向已检查的用户发送电子邮件(批准),但脚本仅发送给第一个已检查的用户,以下是脚本:

if (isset($_POST['approve'])) {
    $ticked = $_POST['approve'];

    foreach($ticked as $id) {
        $SQL = "SELECT * FROM userinfo WHERE id='".intval($id)."'";
        $result = mysql_query("set names 'utf8'");
        $result = mysql_query($SQL);

        if (mysql_num_rows($result) > 0) {
            $db_field = mysql_fetch_array($result);

            $fname = $db_field['first_name'];
            $lname = $db_field['last_name'];
            $email = $db_field['email'];
            $fon = $db_field['telephone'];
            $ad = $db_field['ad'];

            $data = json_decode($ad);

            $message = 'Approved message';

            mail($mail, 'Your Subject', $message);

            set_include_path(getcwd()."/../library/");

            include_once("Google_Spreadsheet.php");

            $u = "[email protected] /cdn-cgi/l/email-protection";
            $p = "sdgfdjkgfjg";

            $ss = new Google_Spreadsheet($u, $p, "Registracija_nova", "Sheet1");
            $row = array(
                "id" = > "=ROW() - 2",
                "name" = > $fname,
                "last_name" = > $lname,
                "email" = > $email,
                "phone_number" = > $fon,
                "address" = > $data - > address,
                "prevozbg" = > $data - > prevozbg,
                "skipass" = > $data - > skipass
            //"json" => $ad
            );

            $ss - > addRow($row);

            mysql_query("DELETE FROM userinfo WHERE `id` = '".intval($id)."'");

            /*
            $ImePrezimePos = "HP EG NPI - Registracija";
            $EmailAdresaPos = "[email protected] /cdn-cgi/l/email-protection";
            $pfw_header = "From: ". $ImePrezimePos . " <" . $EmailAdresaPos . ">\r\n";
            $pfw_header .= "MIME-Version: 1.0\r\n";
            $pfw_header .= "Content-type: text/html; charset=utf-8\r\n";
            $pfw_subject = "Potvrdni email";
            $pfw_email_to = "$email";
            $msg = "Poštovani/a $fname $lname Vaša registracija je odobrena od strane administratora.<br/> Vaš HP tim";
            */

            //$msg = "Dear $fname $lname your registration was confirmed by admin.";
            //mail($email, 'Confirmation', $msg);
            //mail($pfw_email_to, $pfw_subject ,$msg ,$pfw_header ) ;

            $pfw_header. = "MIME-Version: 1.0\r\n";
            $pfw_header. = "Content-type: text/html; charset=utf-8\r\n";

            $fromName = "HP EG NPI - Registracija";
            $fromEmail = "[email protected] /cdn-cgi/l/email-protection";
            $toEmail = "$email";
            $subject = "Prijava prihvacena";

            function sendEmail($fromName, $fromEmail, $toEmail, $subject, $emailBody, $pfw_header) {
                $mail = new PHPMailer();
                $mail - > FromName = $fromName;
                $mail - > From = $fromEmail;
                $mail - > AddAddress("$toEmail");

                $mail - > Subject = $subject;
                $mail - > Body = $emailBody;
                $mail - > isHTML(true);
                $mail - > WordWrap = 150;

                if (!$mail - > Send()) {
                    return false;
                } else {
                    return true;
                }
            }

            function readTemplateFile($FileName) {
                $fp = fopen($FileName, "r") or exit("Unable to open File ".$FileName);
                $str = "";
                while (!feof($fp)) {
                    $str. = fread($fp, 1024);
                }
                return $str;
            }

            //Data to be sent (Ideally fetched from Database)
            $name = "$first_name";
            $lastname = "$last_name";
            $UserEmail = "$email";


            //Send email to user containing username and password
            //Read Template File 
            $emailBody = readTemplateFile("../html-email/mail2.html");

            //Replace all the variables in template file
            $emailBody = str_replace("#username#", $fnames, $emailBody);
            $emailBody = str_replace("#password#", $lnames, $emailBody);

            //Send email
            $emailStatus = sendEmail($fromName, $fromEmail, $UserEmail, $subject, $emailBody, $headers);
        }
    }
}

和错误:

致命错误:无法在线重新声明 /home/^^/public_html/^^/admin/approve.php 中的 sendEmail() (之前在 /home/^^/public_html/^^/admin/approve.php:82 中声明) 82

从之前的文件中调用函数:

echo "<input name=\"approve[]\" type=\"checkbox\" value='".$row["id"]."' >";

我该怎么做才能让它发送到我检查过的每封电子邮件?预先感谢大家!


移动sendEmail()函数外的foreach环形。因为它在循环内所以你得到了错误无法重新声明 sendEmail()

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 发送电子邮件 foreach - 发送至 的相关文章

随机推荐