php mail()收件人地址丢失

时间:2012-01-19 21:19:52

标签: php email header

我的网站运行以下代码:(我自己BCC,以便我有我网站发送的所有电子邮件的副本)

//prepare email headers
$headers = "From: " . "info@mysite.com" . "\r\n";
$headers .= "Reply-To: ". "info@mysite.com" . "\r\n";
$headers .= 'Bcc: sent@mysite.com' . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html; charset=ISO-8859-1\r\n";

$message = getMsg( ... );
mail( $buyer_email, 'mysite.com - Verify your information.', $message, $headers );
$message = getMsg( ... );
mail( $seller_email, 'mysite.com - Verify your information.', $message, $headers );

电子邮件发送完全正常。问题在于第二封电子邮件是BCC给我的。收件人的电子邮件地址为空,因此我无法查看该电子邮件的发送者。 BCC给我的第一封电子邮件很好,所有信息都显示出来。换句话说,我可以看到$ buyer_email,但我看不到$ seller_email。有什么想法吗?

3 个答案:

答案 0 :(得分:2)

您可以像这样调试

echo "Seller Email: $seller_email";
mail( $seller_email, 'mysite.com - Verify your information.', $message, $headers )

该页面将打印卖家电子邮件,您可以看到它实际上是什么。

加成

如果你不能使用上面的代码,因为你必须测试一个用户(这是正常的btw),使用以下技术。

由于您收到第一封电子邮件,请将$ seller_email作为该电子邮件中测试代码的一部分发送,并查看其具有的价值。

$message = getMsg( ... );
mail( $buyer_email, "mysite.com - Test Seller Email: $seller_email .", $message, $headers );

您会在收到的电子邮件中找到卖家电子邮件的价值。

答案 1 :(得分:1)

发送其他标头有帮助吗? (see mail())这样你就不必使用2个邮件功能了。

像这样:

$headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

答案 2 :(得分:0)

我很抱歉,但我犯了一个大错。很长一段时间,但基本上我在一个页面上混淆了代码,在不同的页面上使用非常相似的代码。我在错误的页面上测试了$ seller_email的有效性。在有问题的页面上,它实际上没有被设置。再一次,抱歉。我应该发布完整的代码。