簡體   English   中英

用PHP發送確認電子郵件

[英]Sending a Confirmation Email in PHP

我對PHP很陌生,正在嘗試使用php在線訂購網站。 嘗試使用“ cc”發送確認電子郵件時遇到問題。

每次處理訂單時,訂單始終發送到指定為“ $ from”的“ CC”地址,而發件人(from)就是“ $ to”部分中指定的地址。 在收到的電子郵件確認中,它僅顯示“發件人”部分,並且“收件人”和“抄送”為空,如下所示:

From: **$_SESSION['od_email']**
To: *This space is empty*
CC: orders@business.co.uk

任何人都可以幫助指出我要去哪里了嗎? 我已經附上了下面的代碼。

//THIS IS CODE FOR THE EMAIL WHICH IS AUTOMATICALLY SENT TO THE CUSTOMER AND THE BUSINESS WHEN AN ORDER IS SUCCESSFULLY COMPLETED
//define the receiver of the email
$to = $_SESSION['od_email'];
//define the subject of the email
$subject = 'Order Confirmation | Ref No for Order: '.  $_SESSION['orderId']; 
//define the message to be sent. Each line should be separated with \n
$message = 'test';
//Who the message is from
$from = "orders@business.co.uk";
$cc = "orders@business.co.uk";
//define the headers we want passed. Note that they are separated with \r\n
$headers = "From:" . $from;
//bcc header going to the to go to the business as confirmation
$headers = "cc:" . $cc;
//send the email
$mail_sent = @mail( $to, $subject, $message, $headers );

我需要顯示的是:

From: **orders@business.co.uk**
To: **$_SESSION['od_email'];**
CC: **orders@business.co.uk**

預先感謝您提供的任何幫助

當您要設置抄送時,您將覆蓋$ header中的內容。 嘗試:

$headers = "From:" . $from . "\r\n";
$headers.= "Cc:" . $cc;

而且,如果這樣做沒有幫助,那么在mail上總是有PHP的文檔。

我會全力以赴,並確保您設置了所需的所有內容,

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: ' .$to. "\r\n";
$headers .= 'From: ' .$from. "\r\n";
$headers .= 'Cc: '.$cc. "\r\n";

另外,我相信mail()需要一個有效的電子郵件地址,我不知道您如何設置$_SESSION['od_email']之前的電子郵件,但是如果您正在運行測試並且確實希望$_SESSION['od_email']來如果它無法正常工作,它將被視為無效電子郵件,並返回false,因此不返回任何內容。 為了進一步診斷該問題,我們需要知道如何設置$_SESSION['od_email']

編輯

好的,我很確定問題是由您根據下面的評論設置$_SESSION['od_email]'的。

注意:我假設您的數據庫是$db ,但如果不是,則需要將$db更改$db探測器名稱。

讓我們嘗試一下,看看它如何工作

// Get Data from the Database
$query = "SELECT `od_email` FROM `tbl_order`";
$result = $db->query($query);
while ($data = $db->fetch_array($result)) {

// Set Up the SESSION email
$_SESSION['od_email'] = $data['od_email'];

// Prepare the Email
$to = $_SESSION['od_email'];
$subject = 'Order Confirmation | Ref No for Order: '.  $_SESSION['orderId']; 
$message = 'test';
$from = "orders@business.co.uk";
$cc = "orders@business.co.uk";

// To send HTML mail, the Content-type header must be set
$headers  = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: ' .$to. "\r\n";
$headers .= 'From: ' .$from. "\r\n";
$headers .= 'Cc: '.$cc. "\r\n";

// Send the email
mail($to,$subject,$message,$headers);

}

他不能只是添加一個@mail嗎? 如...

$mail_sent = @mail( $od_email, $subject, $message, $headers ); 

要么

mail( $od_email, $subject, $message, $headers );

替換任何變量。

一直為我工作。

暫無
暫無

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

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