我正在创建一个简单的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”我只想要“网站名称”出现......任何人都可以帮助我吗?
谢谢
答案 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()函数