2

私は PHP を初めて使用し、PHP でオンライン注文 Web サイトを試しています。「cc」を使用して確認メールを送信しようとしたときに問題が発生しました。

注文が処理されるたびに、注文は常に「$from」として指定された「CC」アドレスに送信され、差出人 (差出人) は「$to」セクションで指定されたものになります。受信した確認メールでは、以下に示すように、from セクションのみが表示され、「to」と「cc」は空です。

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**

与えられた助けを前もって感謝します

4

3 に答える 3

2

CC を設定しようとすると、$headers にあったものを上書きします。試す:

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

それでも問題が解決しない場合は、PHP のドキュメントが常にありますmail

于 2012-06-11T00:26:06.733 に答える
2

私はあなたのヘッダーに全力を尽くし、必要なものをすべて設定するようにします。

// 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']email して false を返すため、何も返されません。その問題をさらに診断するに$_SESSION['od_email']は、セットアップ方法を知る必要があります

編集

$_SESSION['od_email]'さて、以下のコメントに基づいて、どのように設定しているかが問題の原因であると確信しています。

注: データベースが$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);

}
于 2012-06-11T00:57:55.803 に答える
1

彼は @mail を追加できませんでしたか? そのような...

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

また

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

変数の置き換え。

いつも私のために働いた。

于 2012-06-11T01:17:41.473 に答える