2014-01-19 3 views
0

Я пытаюсь изменить этот скрипт, чтобы отправить копию Bcc себе:Php почта BCC не работает

$to = $your_email; 
$from = "Server Xt<[email protected]>"; 
$subject = "User Sent Msg :: $msg"; 
$HTMLmessage = $message; 

emailHTML($to, $from, $subject, $HTMLmessage); 

function emailHTML($to, $from, $subject, $HTMLmessage){ 

    $semi_rand = md5(time()); 
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

    $headers = "From: ".$from;  
    $headers .= 
    "\nMIME-Version: 1.0\n" . 
    "Content-Type: multipart/mixed;\n" . 
    " boundary=\"{$mime_boundary}\""; 

    $content .= 
    "This is a multi-part message in MIME format.\n\n" . 
    "--{$mime_boundary}\n" . 
    "Content-Type:text/html; charset=\"iso-8859-1\"\n" . 
    "Content-Transfer-Encoding: 7bit\n\n" . 
    $HTMLmessage . "\n\n"; 

    $ok = @mail($to, $subject, $content, $headers); 

    if(!$ok) {  
    die("Error sending email"); 
    } 
} 

я попытался добавить это $headers .= "Bcc:[email protected]"\n"; но не посылает по электронной почте ... Как сделать Я хочу изменить этот скрипт, чтобы он работал?

+2

Самый простой способ: использовать его и использовать PHPMailer или Swiftmailer. оба делают добавление ОЦК в единую строку кода, а также обеспечивают гораздо лучшую диагностику, если что-то пойдет не так. Кроме того, НИКОГДА не следует использовать оператор '@' подавления. это эквивалент кодирования, набивающий ваши пальцы в уши и идущий «lalalalala не слышит вас» –

+0

Вы должны использовать более структурированный способ построения полей заголовков, таких как '$ headers = array ('...', '...'); $ headers = implode ("\ r \ n", $ headers); '. Это позволит устранить случай отсутствия разрыва строки между «Content-Type» и «BCC». – Gumbo

+0

Ваше многостраничное сообщение также недействительно, так как отсутствует [окончательный разделитель границ] (http://tools.ietf.org/html/rfc2046#page-20). – Gumbo

ответ

2

Отдельных заголовков по \r\n

Try.

function emailHTML($to, $from, $subject, $HTMLmessage) { 

    $semi_rand = md5(time()); 
    $mime_boundary = "==Multipart_Boundary_x{$semi_rand}x"; 

    $headers = "From: ".$from . "\r\n"; 
    $headers .= "Bcc: [email protected]\r\n"; 
    $headers .= 
    "MIME-Version: 1.0\r\n" . 
    "Content-Type: multipart/mixed;\r\n" . 
    " boundary=\"{$mime_boundary}\""; 

    $content .= 
    "This is a multi-part message in MIME format.\r\n\r\n" . 
    "--{$mime_boundary}\r\n" . 
    "Content-Type:text/html; charset=\"iso-8859-1\"\r\n" . 
    "Content-Transfer-Encoding: 7bit\r\n\r\n" . 
    $HTMLmessage . "\r\n\r\n"; 

    $ok = @mail($to, $subject, $content, $headers); 

    if(!$ok) {  
    die("Error sending email"); 
    } 
} 
0

$headers .= "Bcc:[email protected]"\n" Какой синтаксис для тора использовать?

Вы должны получить сообщение об ошибке, если это недопустимый синтаксис PHP. меняется на что-то вроде $headers .= 'Bcc:[email protected]' . "\r\n";

0

Это выглядит как заголовок важны !!!

$from = "Sender Name<[email protected]>"; 
$to="[email protected]"; 
$headers = "From: $from\r\n"; 
$headers .= "To: $to\r\n"; 
$headers .= "Return-Path: <".$to.">\r\n"; 
$headers .= "MIME-Version: 1.0\r\n"; 
$headers .= "Bcc:[email protected]\r\n"; 
$headers .= "Content-Type: text/HTML; charset=ISO-8859-1\r\n"; 
Смежные вопросы