2012-03-01 10 views
11

Sé que hay algunas preguntas similares a esto, pero no puedo hacer que funcione.PHP Envío de correo electrónico BCC

Ok, tengo una lista de correos electrónicos tomados de mi base de datos en una variable llamada $ emailList. Puedo obtener mi código para enviar un correo electrónico desde un formulario si pongo la variable en la sección $to pero No puedo hacer que funcione con bcc. Incluso he agregado un correo electrónico al $to en caso de que fuera eso, pero no hace la diferencia.

Aquí está mi código.

$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."); 
} 

que he probado ambos códigos:

$headers .= 'Bcc: $emailList'; 

y

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

No es que los correos electrónicos no están separados, ya que son. Sé que lo son porque funciona si pongo $emailList en la sección $to.


debo añadir, ignorar las $message bits y la materia HTML. No he proporcionado todo eso y es por eso que falta en este código.

+10

Te has perdido el "\ r \ n" después de tu encabezado BCC y luego estás sobrescribiendo los encabezados en la siguiente línea con De. – drew010

+0

Lo he intentado con \ r \ n también. Entonces, ¿dónde pongo el bcc? ¿Necesita estar en un lugar específico? –

+0

@ drew010, su comentario debería publicarse como respuesta. – davidethell

Respuesta

37

Tienes $headers .= '...'; seguido por $headers = '...';; la segunda línea sobrescribe la primera.

Simplemente ponga el $headers .= "Bcc: $emailList\r\n"; decir después de la línea Content-type y debería estar bien.

En una nota lateral, generalmente se requiere To; los servidores de correo pueden marcar su mensaje como correo no deseado de otra manera.

$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

Nunca he tenido un problema al no especificar 'To' en los encabezados. – Bot

+4

No lo dudo. Solo quiero decir que hay una variedad de servidores de correo y filtros de correo no deseado y los correos electrónicos con bits de encabezado faltantes/extraños generalmente obtienen puntuaciones de spam más altas. – gregheo

10

usted comenzaba BCC pero luego sobrescribir la variable con el 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

El '\ r \ n' debe estar entre comillas dobles, de lo contrario se toma literalmente. Solo el que estaba en 'BCC' tenía este problema. – drew010

+0

Actualizado. Gracias dibujó – Bot

Cuestiones relacionadas