Имя отправителя PHP Sendmail всегда является Apache, когда в заголовке есть вложение


Мы пытаемся отправить электронное письмо с помощью sendmail. Все отлично работает с обычными заголовками, но в тот момент, когда мы добавляем вложение в заголовок, имя отправителя появляется как Apache. Вот наш фрагмент кода

$from_email = "[email protected]";
$separator = md5(time());
$eol = PHP_EOL;
$filename = "attachment.pdf";
$attachment = chunk_split(base64_encode(file_get_contents($filename)));
$text = "Hi!";

// main header (multipart mandatory)
$headers  = "From:".$from_email.$eol;
$headers  = "Bcc:[email protected]".$eol;
$headers .= "MIME-Version: 1.0".$eol;
$headers .= "Content-Type: multipart/mixed; boundary=\"".$separator."\"".$eol.$eol;
$headers .= "Content-Transfer-Encoding: 7bit".$eol;
$headers .= "This is a MIME encoded message.".$eol.$eol;
// message
$message .= "--".$separator.$eol;
$message .= "Content-Type: text/html; charset=\"iso-8859-1\"".$eol;
$message .= "Content-Transfer-Encoding: 8bit".$eol.$eol;
$message .= $text.$eol.$eol;

// attachment
$message .= "--".$separator.$eol;
$message .= "Content-Type: application/pdf".$eol;
$message .= "Content-Transfer-Encoding: base64".$eol;
$message .= "Content-Disposition: attachment; filename=\"".$filename."\"".$eol;
$message .= $attachment.$eol;
$message .= "--".$separator."--".$eol;

$b = mail($email, "Your Issue of the STQ",$message, $headers, "[email protected]");

Добавив [email protected], мы получаем такое сообщение в заголовке электронной почты от: [email protected] (Апач). Не знаете, откуда взялся этот Apache?

В чем здесь может быть проблема?

Спасибо

Author: j0k, 2012-09-17

2 answers

Вам нужна точка во второй строке.

$headers  = "From:".$from_email.$eol;
$headers  .= "Bcc:[email protected]".$eol;
 2
Author: xyzz, 2012-09-17 12:53:37

Сделайте заголовок таким:

$headers .= 'From: <[email protected]>' . "\r\n";

Также отсутствует точка во второй строке, как указал xyzz

 0
Author: Sugato, 2012-09-17 12:55:05