如何将 e-mail headers 数据合并到 e-mail html 消息 body in PHP
How to merge e-mail headers data into e-mail html message body in PHP
我正在寻找一种解决方案,将 e-mail 的 header 如地址、主题、日期等...放入 e-mail 的消息 body.就像它在从任何 e-mail 客户端转发 e-mail 时一样有效。
在PHP中是否有好的做法?我在手册中找不到它。
我正在使用 php 和 laravel。
$to = 'me@mydomain.com';
$subject = 'Subject';
$headers = "From: me@ mydomain.com\r\n";
$headers .= "BCC: someonelese@ mydomain.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message .= "<html><body>…Email Message 1…</body></html>";
mail($to, $subject, $message, $headers);
}
if(count($errors) == 0) {
$to = ($_POST['email']);
$subject = 'Subject';
$url = 'mydomain.caom';
$headers2 = "From: me@ mydomain.com\r\n";
$headers2 .= "BCC: someonelese@ mydomain.com\r\n";
$headers2 .= "MIME-Version: 1.0\r\n";
$headers2 .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = "<html><body>…Email Message 2…</body></html>";
mail($to, $subject, $message, $headers2);
echo '<META HTTP-EQUIV=Refresh CONTENT="1; URL='.$url.'">';
}
我可以将 header 连接到 body 中吗?
是的,你可以!
你可以这样做
$to = 'me@mydomain.com';
$subject = 'Subject';
$headers = "From: me@ mydomain.com\r\n";
$headers .= "BCC: someonelese@ mydomain.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message_headers = str_replace("\r\n", "<br>", $headers);
$message = "<html><body>…Email Message 1…{$message_headers}</body></html>";
mail($to, $subject, $message, $headers);
上面将用 HTML <br>
标记替换 $headers
中的新行 (\r\n
),并将格式化后的 headers 添加到结束 <body>
标记之前的 $message
。
另请注意,我已从 $message .= "...";
中删除 .
并将其替换为 $message = "...";
你不需要 .
除非你附加 $message
变量。
我正在寻找一种解决方案,将 e-mail 的 header 如地址、主题、日期等...放入 e-mail 的消息 body.就像它在从任何 e-mail 客户端转发 e-mail 时一样有效。
在PHP中是否有好的做法?我在手册中找不到它。 我正在使用 php 和 laravel。
$to = 'me@mydomain.com';
$subject = 'Subject';
$headers = "From: me@ mydomain.com\r\n";
$headers .= "BCC: someonelese@ mydomain.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message .= "<html><body>…Email Message 1…</body></html>";
mail($to, $subject, $message, $headers);
}
if(count($errors) == 0) {
$to = ($_POST['email']);
$subject = 'Subject';
$url = 'mydomain.caom';
$headers2 = "From: me@ mydomain.com\r\n";
$headers2 .= "BCC: someonelese@ mydomain.com\r\n";
$headers2 .= "MIME-Version: 1.0\r\n";
$headers2 .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message = "<html><body>…Email Message 2…</body></html>";
mail($to, $subject, $message, $headers2);
echo '<META HTTP-EQUIV=Refresh CONTENT="1; URL='.$url.'">';
}
我可以将 header 连接到 body 中吗?
是的,你可以!
你可以这样做
$to = 'me@mydomain.com';
$subject = 'Subject';
$headers = "From: me@ mydomain.com\r\n";
$headers .= "BCC: someonelese@ mydomain.com\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";
$message_headers = str_replace("\r\n", "<br>", $headers);
$message = "<html><body>…Email Message 1…{$message_headers}</body></html>";
mail($to, $subject, $message, $headers);
上面将用 HTML <br>
标记替换 $headers
中的新行 (\r\n
),并将格式化后的 headers 添加到结束 <body>
标记之前的 $message
。
另请注意,我已从 $message .= "...";
中删除 .
并将其替换为 $message = "...";
你不需要 .
除非你附加 $message
变量。