首页 文章

联系表格电子邮件发送,但邮件在主题[重复]

提问于
浏览
-2

这个问题在这里已有答案:

我的网页上的联系表单最终会发送电子邮件,但不会以正确的格式发送 . 这是我收到的电子邮件 . 出于隐私原因,我隐藏了电子邮件和组织 .

From-- norgun
Subject-- Test  Email: ***@gmail.com  Message: Sbsbdb
Message-- 
MIME-Version: 1.0
Content-type: text/plain; charset=iso-8859-1
From: Test <***@gmail.com>
Reply-To: <***@gmail.com>
X-Mailer: PHP/7.0.21

无论如何,正如您从上面所看到的,该人在联系表单中写的姓名,电子邮件和邮件内容都在主题行而不是实际的电子邮箱中 . 有没有一种方法可以格式化我的代码,以便他们记下的消息和名称在消息框而不是主题框中,并且电子邮件是从将电子邮件放在表单中的人发送的,而不是“ norgun“这是我为网站提出的?

这是我到目前为止的代码:

<?php
$to = 'index@indexmarkets.biz';
$name = !empty($_POST['name']) ? filter_var(trim($_POST['name']), FILTER_SANITIZE_STRING) : '';
$from = !empty($_POST['email']) ? filter_var(trim($_POST['email']), FILTER_SANITIZE_EMAIL) : $to;
$message = !empty($_POST['message']) ? filter_var(trim($_POST['message']), FILTER_SANITIZE_STRING) : '';

$body = "Name: {$name}\r\nEmail: {$from}\r\nMessage: {$message}";

$body = wordwrap($body, 70, "\r\n");

$headers = [
    'MIME-Version: 1.0',
    'Content-type: text/plain; charset=iso-8859-1',
    "From: $name <$from>",
    "Reply-To: <$from>",
    'X-Mailer: PHP/' .phpversion()
];

$success = mail($to, $body, implode("\r\n", $headers));

if(!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) === 'xmlhttprequest') {
    die(json_encode(['success' => $success]));
}

echo $success ? 'Sent Successfully.' : 'An error occurred';

ini_set('display_errors', 1); error_reporting(E_ALL);

1 回答

  • 1

    's because you'将您的变量 $body 作为 subject 参数传递给mail()函数 . 这一行:

    $success = mail($to, $body, implode("\r\n", $headers));
    

    应该是这样的事情:

    $success = mail($to, $subject, $body, implode("\r\n", $headers));
    

    确保将 $subject 设置为某个内容 .

相关问题