【问题标题】:php contact form to display the email address of the sender in inboxphp联系表单在收件箱中显示发件人的电子邮件地址
【发布时间】:2014-02-27 15:39:12
【问题描述】:

我想创建一个表单,让消息的收件人在从收件箱回复网站消息时能够单击“回复”。回复应自动填充发件人的电子邮件地址。

我认为我需要将 $mailheader 从特定电子邮件地址更改为 .$_POST,但我的尝试无法正常工作。我觉得这一定是我做错了一些小事。

这是 php 表单代码。它按原样工作,但我正在尝试编辑/提高可用性:

<?
$name = $_POST['name'];
$email = $_POST['email'];
$phone = $_POST['phone'];
$message = $_POST['message'];
$security = $_POST['security'];

$to = "website-owner@gmail.com";
$subject = "Contact Message from Website";
$message = "A visitor of exampledomain.com has submitted the following message.\n\nName: $name\n\nEmail: $email\n\nPhone: $phone\n\nMessage: $message";
$mailheaders = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";


if ($security=="10") {
    mail($to,$subject,$message,$mailheaders);
    header("Location:contact.php?s=1");
}
else {
    header("Location:contact.php?s=2");
}
?>

这是我的第一次尝试:

$mailheader = "From: ".$_POST["email"]."\r\nReply-To: ".$_POST["email"]."\r\n";

这是我的第二次尝试:

$mailheaders .= "Reply-To: ".$_POST["email"]."\r\n";
$mailheaders .= "From: ".$_POST['Email']."\r\n";

这是我的第三次尝试:

$mailheaders = "Reply-To: ".$_POST["email"]."\r\n";
$mailheaders = "From: ".$_POST['Email']."\r\n";

【问题讨论】:

  • 我建议不要更改“发件人”,而只更改回复。客户端或服务器安全策略可能不喜欢您的服务器发送带有 gmail.com 或 yahoo.com 域的电子邮件...即使您用来发送它的邮件中继也可能不会让它们通过...
  • 感谢您的建议。我找到了上面问题的答案。这在 TO 电子邮件设置为 gmail 帐户时有效,但当我将其更改为基于域的电子邮件帐户时它不起作用。您对如何将电子邮件传递到电子邮件收件箱有任何建议吗?

标签: php email


【解决方案1】:

我想通了!此邮件标头有效。

$mailheaders = 'From: webmaster@example.com' . "\r\n" .
        'Reply-To: ' . $email . "\r\n" .
        'X-Mailer: PHP/' . phpversion();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    • 2016-01-27
    • 1970-01-01
    • 1970-01-01
    • 2010-09-23
    • 1970-01-01
    • 2012-08-15
    相关资源
    最近更新 更多