2

sendmail を使用して電子メールを送信しようとしています。通常のヘッダーではすべて正常に機能しますが、ヘッダーに添付ファイルを追加すると、送信者名は Apache になります。これが私たちのコードスニペットです

$from_email = "noreply@domain.com";
$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:user@domain.com".$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, "-fnoreply@domain.com");

-fnoreply@domain.com を追加すると、電子メール ヘッダー From: noreply@domain.com (Apache) で次のようになります。このApacheがどこから来ているのかわからない?

ここで何が問題になる可能性があります。

ありがとう

4

2 に答える 2

2

2 行目にドットが必要です。

$headers  = "From:".$from_email.$eol;
$headers  .= "Bcc:user@domain.com".$eol;
于 2012-09-17T12:53:37.793 に答える
0

ヘッダーを次のようにします。

$headers .= 'From: <webmaster@example.com>' . "\r\n";

xyzz が指している 2 行目のドットも欠落しています

于 2012-09-17T12:55:05.657 に答える