关于标头附加参数的php邮件函数


A php mail function regarding the additional parameters for headers

我使用dreamhost来发送邮件。我有一个问题与php邮件功能额外的头参数。这段代码可以工作,并且发送了电子邮件:

$to = 'myemail@gmail.com';
$name = $_POST['name'];
$email = $_POST['email'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$headers = "From: $name <**webmaster@example.com**>'r'n" .
    "Reply-To: $name <**webmaster@example.com**>'r'n" .
    'X-Mailer: PHP/' . phpversion();
mail($to, $subject, $message, $headers);

但是当我将webmaster@example.com替换为变量$email

$headers = "From: $name <**$email**>'r'n" .
    "Reply-To: $name <**$email**>'r'n" .
    'X-Mailer: PHP/' . phpversion();

邮件没有发送。我做了一个print_r($_POST),元素在那里。我还做了另一个测试,我在表单中输入电子邮件:webmaster@example.com,看看它是否会发送,它确实发送了。所以我的问题是,我如何补救这个问题,如果用户键入他们的电子邮件地址到另一个邮件扩展的形式,该邮件将不会被发送,但如果扩展是@example.com,那么邮件将被发送。

$name变量应该是完整的电子邮件地址:

"$name = " 'a name' email@whatever.com> "
$headers = "From: $ From 'r'n";

在我的服务器上工作。加上开头<到电子邮件地址。如果我包含这个字符串,这个系统根本不会显示它。如果你的表单有不同的变量来表示响应者的名字和电子邮件地址,你必须将它们连接起来以获得正确格式的$name>