PHP邮件头问题

时间:2010-08-31 09:11:25

标签: php

我正在创建一个简单的PHP邮件功能。我的标题有一个小问题。我正在尝试将发件人名称设置为客户端网站,当我使用以下代码时:

$headers = "From: Websites' Name";
$headers .= "\nMIME-Version: 1.0\n"."Content-Type:  multipart/mixed;\n"." boundary=\"{$mime_boundary}\"";
$headers .= "Reply-To:  $email <$email>\n";
$headers .= "X-Sender:  $email <$email>\n";
$headers .= "X-Priority: 1\n";

我收到电子邮件,发件人将是“网站'Name@h184905.safesecureweb.com”。我想要的是,摆脱“@ h184905.safesecureweb.com”我只想要“网站名称”出现......任何人都可以帮助我吗?

谢谢

4 个答案:

答案 0 :(得分:2)

这是不可能的。电子邮件需要有效的from地址。

您可以做的最好的就是您已在其他标题中执行的操作:

$headers = "From: \"Websites' Name\" <email@example.com>";

(插入有效的电子邮件[必须在同一服务器上]以获取示例地址)

我假设Websites'只是一个示例 - 否则您可能需要转义引号字符。

答案 1 :(得分:2)

您需要设置有效的From标头 - 即有效的电子邮件地址。你可以这样做:

From: "Websites' Displayed Name" <some@address.example.com>

请注意,如果显示的名称中有空格,则需要用双引号将其括起来(对于非ASCII字符(例如“ščřž”),您需要使用quoted-pritable或base64)

答案 2 :(得分:0)

如前所述,您需要在From字段中提供有效的邮箱。您可以使用imap_rfc822_write_address

$headers = array(
    "From: ".imap_rfc822_write_address("info", "example.com", "Website's Name"),
    "MIME-Version: 1.0",
    "Content-Type: multipart/mixed; boundary=\"{$mime_boundary}\"",
    "Reply-To: ".imap_rfc822_write_address("info", "example.com", "Website's Name"),
    "X-Sender: ".imap_rfc822_write_address("info", "example.com", "Website's Name"),
    "X-Priority: 1"
);
$headers = implode("\r\n", $headers);

答案 3 :(得分:-1)

也许看看php.net上的mail()函数

http://php.net/manual/en/function.mail.php