So when a product is ordered from a merchant registered on my website, I want my code to update them while also sending the same email to our company email address. When the code is sent to our company email address, no email is sent to the merchant. Can you tell me what could be wrong? Thanks.
Please note that the email variable belongs to the merchant, primarily the Gmail account. Could this be a limitation of gmail or something?
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; } } }
I recommend using php mailter instead of the built-in mail functionality.
PHP's mail() function uses the server's base mail server, which on shared hosting often has a bad email reputation and is therefore blocked by many recipient servers. PHP Mailer allows you to communicate directly with any external web server, even through Gmail if you want to send emails.
https://github.com/PHPMailer/PHPMailer