Seu $ deve ser apenas o endereço de e-mail. A caixa de diálogo SMTP espera um endereço de e-mail entre colchetes e você está alimentando o conteúdo do cabeçalho Para :. O mesmo para $ também.
Não consigo entender por que estou recebendo este erro - ambos para & dos endereços de e-mail são válidos (eu os uso diariamente), então não consigo descobrir como isso está acontecendo - qualquer ajuda seria apreciada.
NOTA: Isso está funcionando na produção, mas está gerando erros no dev. Eu tenho uma configuração mais restrita no dev. NOTA: Eu estou testando localmente no PC usando smtp4dev
$to = 'recipient <[email protected]>';
$cc = 'copy <[email protected]>';
$from = 'sender <[email protected]>';
$filename = 'Invoice#'.$order_id.'.pdf';
$message = file_get_contents(ROOT_DIR.'admin/include/email-body.html');
$content = chunk_split(base64_encode($pdf_file));
$uid = md5(uniqid(time()));
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'To: '. $to . "\r\n";
$headers .= 'Cc: '. $cc . "\r\n";
$headers .= 'From: '. $from . "\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"".$uid."\"\r\n\r\n";
$headers .= "This is a multi-part message in MIME format.\r\n";
$headers .= "--".$uid."\r\n";
$headers .= "Content-type:text/html; charset=iso-8859-1\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n\r\n";
$headers .= $message."\r\n\r\n";
$headers .= "--".$uid."\r\n";
$headers .= "Content-Type: application/pdf; name=\"".$filename."\"\r\n";
$headers .= "Content-Transfer-Encoding: base64\r\n";
$headers .= "Content-Disposition: attachment; filename=\"".$filename."\"\r\n\r\n";
$headers .= $content."\r\n\r\n";
$headers .= "--".$uid."--";
if (mail($to, $subject, $message, $headers)) {
print "SUCCESS";
} else {
print "FALIED";
}
Aqui está o resultado se eu imprimir as variáveis na linha mail ():
mail(recipient <[email protected]>, Company - Invoice#12451, "",
MIME-Version: 1.0
To: recipient <[email protected]>
Cc: copy <[email protected]>
From: sender <[email protected]>
Content-Type: multipart/mixed;
boundary="2c88ff549e67c83e7a6e3df0bffe9dc9"
This is a multi-part message in MIME format.
--2c88ff549e67c83e7a6e3df0bffe9dc9 Content-type:text/html;
charset=iso-8859-1 Content-Transfer-Encoding: 7bit
---> html message body stripped <---
--2c88ff549e67c83e7a6e3df0bffe9dc9 Content-Type: application/pdf;
name="Invoice#12451.pdf" Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="Invoice#12451.pdf"
--> pdf attachment stripped <--
--2c88ff549e67c83e7a6e3df0bffe9dc9--)
Seu $ deve ser apenas o endereço de e-mail. A caixa de diálogo SMTP espera um endereço de e-mail entre colchetes e você está alimentando o conteúdo do cabeçalho Para :. O mesmo para $ também.