Maison > Questions et réponses > le corps du texte
Ainsi, lorsqu'un produit est commandé auprès d'un commerçant inscrit sur mon site, je souhaite que mon code le mette à jour tout en envoyant également le même email à l'adresse email de notre entreprise. Lorsque le code est envoyé à l'adresse email de notre entreprise, aucun email n'est envoyé au commerçant. Pouvez-vous me dire ce qui ne va pas ? Merci.
Veuillez noter que la variable email appartient au commerçant, principalement le compte Gmail. Cela pourrait-il être une limitation de Gmail ou quelque chose comme ça ?
function mail_merchants_and_shoply($cart_code){ $conn = $this -> connection; $merchant_sent = false; $shoply_sent = false; $query = mysqli_query($conn, "SELECT * FROM business_account ORDER BY business_id DESC")or die(mysqli_error($conn)); while($row = mysqli_fetch_array($query)){ $id = $row['business_id']; $stat = "NEW"; $email = $row['email_add']; $name = $row['business_name']; $c_query = mysqli_query($conn, "SELECT * FROM cart_db WHERE business_id = '$id' AND cart_code = '".mysqli_real_escape_string($conn, $cart_code)."'")or die(mysqli_error($conn)); $merchant_mail_body = "<h2>NEW ORDER</h2><ul>"; while($arr = mysqli_fetch_array($c_query)){ $p_id = $arr['product_id']; $p_query = mysqli_query($conn, "SELECT * FROM products WHERE product_id = '$p_id'")or die(mysqli_error($conn)); $p_arr = mysqli_fetch_array($p_query); $image = $p_arr['product_image1_url']; $price = $p_arr['product_price']; $name = $p_arr['product_name']; $image = "<img src = 'https://www.shoply.ng/backend/$image' style = 'max-width: 200px; max-height: 200px'/>"; $merchant_mail_body.="<li>$name</li> <li>$image</li> <li> $price</li>"; } $merchant_mail_body .="</ul>"; $mail_subject = "NEW SHOPLY ORDER"; // $mailHead = implode("\r\n", ["MIME-Version:1.0","Content-type:text/html; charset =utf-8"]); $mailHead = "MIME-Version: 1.0" . "\r\n"; $mailHead .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // Additional headers $mailHead .= 'From: Shoply<orders@shoply.ng>' . "\r\n"; if(mail($email, $mail_subject, $merchant_mail_body, $mailHead)){ $merchant_sent = true; } $s_query = mysqli_query($conn, "SELECT * FROM cart_db WHERE cart_code = '".mysqli_real_escape_string($conn, $cart_code)."'")or die(mysqli_error($conn)); $o_query = mysqli_query($conn, "SELECT * FROM orders WHERE order_code = '".mysqli_real_escape_string($conn, $cart_code)."'")or die(mysqli_error($conn)); $o_arr = mysqli_fetch_array($o_query); $location = $o_arr['delivery_location']; $phone = $o_arr['delivery_phone']; $user_fname = $_SESSION['user_fname']; $shoply_mail_body = "<h2>NEW ORDER</h2> FROM: $user_fname <ul> <li><b>Address:</b> $location</li> <li><b>Phone Number: </b>$phone</li>"; // $f_arr = mysqli_fetch_array($s_query); // $customer_id = $f_arr['customer_id']; // $c_query = mysqli_query($conn, "SELECT * FROM customers WHERE customer_id= '$customer_id'")or die(mysqli_error($conn)); // $c_arr[] while($row = mysqli_fetch_array($s_query)){ $p_id = $row['product_id']; $p_query = mysqli_query($conn, "SELECT * FROM products WHERE product_id = '$p_id'")or die(mysqli_error($conn)); $p_arr = mysqli_fetch_array($p_query); $image = $p_arr['product_image1_url']; $price = $p_arr['product_price']; $name = $p_arr['product_name']; $image = "<img src = 'https://www.shoply.ng/backend/$image' style = 'max-width: 200px; max-height: 200px'/>"; $shoply_mail_body.="<li>$name</li> <li>$image</li> <li> $price</li>"; } $shoply_mail_body .="</ul>"; $email = "sales@shoply.ng"; $mail_subject = "NEW SHOPLY ORDER"; // $mail_head = implode("\r\n", ["MIME-Version:1.0","Content-type:text/html; charset =utf-8"]); $headers = "MIME-Version: 1.0" . "\r\n"; $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; // Additional headers $headers .= 'From: Shoply<orders@shoply.ng>' . "\r\n"; if(mail($email, $mail_subject, $shoply_mail_body, $headers)){ $shoply_sent = true; } if($merchant_sent && $shoply_sent){ return true; }else{ return false; } } }
P粉6429198232024-04-05 20:53:37
Je recommande d'utiliser php mailter au lieu de la fonctionnalité de messagerie intégrée.
La fonction mail() de PHP utilise le serveur de messagerie de base du serveur, qui sur l'hébergement mutualisé a souvent une mauvaise réputation de messagerie et est donc bloqué par de nombreux serveurs destinataires. PHP Mailer vous permet de communiquer directement avec n'importe quel serveur Web externe, même via Gmail si vous souhaitez envoyer des emails.
https://github.com/PHPMailer/PHPMailer