Форма PHP - Проблема с ответом по электронной почте - PullRequest
1 голос
/ 18 мая 2011

Форма контакта работает просто отлично, но я не могу понять, как настроить «ответное письмо». Код PHP выглядит следующим образом:

<?php
// Get Data 
$name = strip_tags($_POST['name']);
$email = strip_tags($_POST['email']);
$message = strip_tags($_POST['message']);

// Send Message
mail( "Message from $name",
"Name: $name\nEmail: $email\nMessage: $message\n",
"From: $name <forms@example.net>" );
?>

Я пытался заменить «forms@example.com» на $ email, но по какой-то причине он вылетает и никогда ничего не отправляет.

Ответы [ 3 ]

4 голосов
/ 18 мая 2011

Это просто заголовок Reply-to: reply@example.com, который вам не хватает в блоке заголовков? Кроме того, похоже, что вы пропустили первый параметр функции mail(), который должен быть адресом, по которому она отправляется.

Добавьте заголовок Reply-to в третий параметр к mail().

// Send Message
mail($to_address, "Message from $name",
  // Message
  "Name: $name\nEmail: $email\nMessage: $message\n",
  // Additional headers
  "From: $name <forms@example.net>\r\nReply-to: reply@example.com"
);

РЕДАКТИРОВАТЬ Я пропустил запятую в вопросе и подумал, что весь блок - это сообщение, включая name & from. Отредактировано выше. Я вижу, у вас уже был блок заголовка.

0 голосов
/ 18 мая 2011

Взять этот фрагмент:

 <?php
    //define the receiver of the email
    $to = 'youraddress@example.com';
    //define the subject of the email
    $subject = 'Test email';
    //define the message to be sent. Each line should be separated with \n
    $message = "Hello World!\n\nThis is my first mail.";
    //define the headers we want passed. Note that they are separated with \r\n
    $headers = "From: webmaster@example.com\r\nReply-To: webmaster@example.com";
    //send the email
    $mail_sent = @mail( $to, $subject, $message, $headers );
    //if the message is sent successfully print "Mail sent". Otherwise print "Mail failed" 
    echo $mail_sent ? "Mail sent" : "Mail failed";
    ?>

В вашем коде вы пропустили первый аргумент, ведьма должна быть с кем.

0 голосов
/ 18 мая 2011

Вы не используете правильные параметры для функции почты. Взгляните на документацию

bool mail ( string $to , string $subject , string $message [, string $additional_headers [, string $additional_parameters ]] )

В вашем случае это будет:

mail( $to,
$subject,
$message,
"From: $name <forms@example.net>" );

Предполагается, что вы указали ему $ (который указывает, кому отправлять письмо) и тему $ (тему письма).

...