2012-03-01 47 views
11

Tôi biết có một số câu hỏi tương tự nhưng tôi không thể làm cho nó hoạt động được.PHP Gửi email BCC

Ok, tôi có một danh sách các email được lấy từ cơ sở dữ liệu của tôi trong một biến gọi là $ emailList. Tôi có thể lấy mã để gửi email từ biểu mẫu nếu tôi đặt biến trong phần $to nhưng Tôi không thể làm cho mã hoạt động với bcc. Tôi thậm chí đã thêm một email vào trường hợp $to trong trường hợp đó, nhưng nó không tạo ra sự khác biệt.

Đây là mã của tôi.

$to = "[email protected]"; 
$subject .= "".$emailSubject.""; 
$headers .= 'Bcc: $emailList'; 
$headers = "From: [email protected]\r\n" . "X-Mailer: php"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$message = '<html><body>'; 
$message .= 'THE MESSAGE FROM THE FORM'; 

if (mail($to, $subject, $message, $headers)) { 
    $sent = "Your email was sent!"; 
} else { 
    $sent = ("Error sending email."); 
} 

Tôi đã thử cả hai mã:

$headers .= 'Bcc: $emailList'; 

$headers .= 'Bcc: '.$emailList.'; 

Nó không phải là các email không được tách ra bởi vì họ đang có. Tôi biết họ là vì nó hoạt động nếu tôi đặt $emailList trong phần $to.


Tôi nên thêm, bỏ qua các bit $message và nội dung HTML. Tôi đã không cung cấp tất cả điều đó vì vậy đó là lý do tại sao nó thiếu từ mã này.

+10

Bạn đang thiếu "\ r \ n" sau tiêu đề BCC và sau đó bạn ghi đè các tiêu đề trên dòng tiếp theo bằng Từ. – drew010

+0

Tôi cũng đã thử với \ r \ n. Vì vậy, nơi nào tôi đặt bcc? Nó có cần phải ở một nơi cụ thể không? –

+0

@ drew010, nhận xét của bạn sẽ được đăng dưới dạng câu trả lời. – davidethell

Trả lời

37

Bạn có $headers .= '...'; tiếp theo $headers = '...';; dòng thứ hai là ghi đè đầu tiên.

Chỉ cần đặt $headers .= "Bcc: $emailList\r\n"; nói sau dòng Content-type và sẽ ổn thôi.

Lưu ý phụ, thường yêu cầu To; máy chủ thư có thể đánh dấu thư của bạn là spam.

$headers = "From: [email protected]\r\n" . 
    "X-Mailer: php\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$headers .= "Bcc: $emailList\r\n"; 
+0

Tôi chưa bao giờ gặp sự cố khi không chỉ định 'Tới' trong tiêu đề. – Bot

+4

Tôi không nghi ngờ điều đó. Tôi chỉ có nghĩa là có một loạt các máy chủ mail và các bộ lọc thư rác ra khỏi đó và các email với các bit tiêu đề bị thiếu/lạ thường nhận được điểm số thư rác cao hơn. – gregheo

10

Bạn đã được thiết lập BCC nhưng sau đó ghi đè lên các biến với FROM

$to = "[email protected]"; 
    $subject .= "".$emailSubject.""; 
$headers .= "Bcc: ".$emailList."\r\n"; 
$headers .= "From: [email protected]\r\n" . 
    "X-Mailer: php"; 
    $headers .= "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n"; 
$message = '<html><body>'; 
$message .= 'THE MESSAGE FROM THE FORM'; 

    if (mail($to, $subject, $message, $headers)) { 
    $sent = "Your email was sent!"; 
    } else { 
     $sent = ("Error sending email."); 
    } 
+2

'\ r \ n' phải nằm trong dấu ngoặc kép nếu không nó được thực hiện theo nghĩa đen. Chỉ có một trên 'BCC' có vấn đề này. – drew010

+0

Đã cập nhật. Cảm ơn đã vẽ – Bot

Các vấn đề liên quan