【问题标题】:PHP Email Contact Form in Wordpress [duplicate]Wordpress中的PHP电子邮件联系表[重复]
【发布时间】:2014-05-12 02:51:38
【问题描述】:

我昨天问过这个,但我想我不是很清楚......

我正在使用一个 WordPress 主题,它有一个简单的 PHP 联系表单,允许用户相互发送电子邮件。但是,当一个用户向另一个用户发送电子邮件时,它会将我的 WordPress 管理员电子邮件显示为来自谁,而不是用户在填写表单时在电子邮件字段中输入的电子邮件地址。 (表格只包含“Your Email”和“Your Message”)

这是代码的图片:

screenshot http://urbansheet.com/imgs/contact-sample.jpg

  • 绿色区域引用接收电子邮件的用户地址。

  • RED 区域引用用户通过电子邮件发送的帖子的标题,并显示为电子邮件主题。

  • PURPLE 区域显然引用了“Your Message”。

  • ORANGE 区域显示在电子邮件正文中,“.$email”确实将发件人的电子邮件地址放在那里。

但是,就像我说的,我需要“来自”发件人的电子邮件地址的电子邮件,而不是来自我的 WordPress 管理员电子邮件。如果收件人在他们的电子邮件帐户中单击回复,这将毫无用处,他们只会回复我的管理员地址而不是发件人。

现在的情况是,为了让收件人回复,他们必须将发件人的电子邮件从电子邮件正文中复制并粘贴到新电子邮件中。不太方便。

【问题讨论】:

    标签: php wordpress forms email contact


    【解决方案1】:

    如果您将邮件设置为from 发件人的电子邮件,则您更有可能被困在垃圾邮件过滤器中(因为发件人的服务器实际上不是发件人...您的)。

    相反,为发件人的电子邮件设置一个Reply-To: 标头。如果没有看到您在 send_email() 函数中所做的事情,很难知道您将如何实现它。使用 PHP 的mail(),很容易。

    <?php
    $headers = 'From: webmaster@example.com' . "\r\n" .
        'Reply-To: sender@example2.com';
    
    mail( 'recipient@example2.com', 'subject', 'message', $headers);
    

    当您调用send_email() 时,只需包含Reply-To: 标头和“发件人”电子邮件地址即可。

    【讨论】:

    • 好的,谢谢。那么我将如何引用发件人的电子邮件呢?它不仅仅是来自一封静态电子邮件。这是他们输入的内容。它是 $email 还是“email”,因为文本字段的名称为“email”
    • 是的,如果您的输入有name="email",最好的方法是$_REQUEST['email']。如果您愿意,可以用$_POST$_GET 替换$_REQUEST(您需要确定表单是&lt;form action="post" 还是action="get"
    • 刚刚看到您已经在$_POST['email'] 的代码中定义了$email,所以是的,继续使用$email 作为回复:)
    • 好的,差不多了。哈哈。
    • 这有效 $headers = 'From: webmaster@mysite.com' 。 "\r\n" 。 ''; $message = nl2br($_POST['message']); $p = get_post(get_the_ID()); $a = $p->post_author; $a = get_userdata($a); mail($recipients = $a->user_email, __("", "ClassifiedTheme")."".get_the_title(), $message, $headers);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-10-25
    • 1970-01-01
    • 2017-07-16
    • 2014-06-09
    • 2013-11-02
    • 2012-12-03
    • 1970-01-01
    相关资源
    最近更新 更多