2015-08-13 4 views
0

Так у меня есть форма электронной почты с помощью PHP:PHP Электронная почта Форма Дополнительные поля

<form method="post" action="contactus.php" autocomplete="off"> 
      <label for="Name">Name:</label> 
      <input type="text" name="Name" id="Name" maxlength="60" required/> 

      <label for="email">Email:</label> 
      <input type="text" name="email" id="email" maxlength="120" required/> 

      <label for="message">Message:</label><br /> 
      <textarea name="message" rows="20" cols="20" id="message" required></textarea> 

      <input type="submit" name="submit" value="Submit" class="submit-button" /> 
     </form> 

И РНР отправить на мой адрес электронной почты:

<?php 

if($_POST["submit"]) { 

// The message 
$message=$_POST["message"]; 

$email=$_POST["email"]; 

// In case any of our lines are larger than 70 characters, we should use wordwrap() 
$message = wordwrap($message, 70, "\r\n"); 

// Send 
mail('myemail.com', 'Quick Pass', $message, $email); 
} 
?> 

Но проблема только «myemail.com» (это мой адрес электронной почты), «Быстрый проход» (тема электронной почты) и $ message (сообщение электронной почты). $ email не отправляется.

Я пробовал:

<?php 
$to = "myemail.com"; 
$subject = "Quick Pass"; 
$message=$_POST["message"]; 
$email=$_POST["email"]; 

mail($to,$subject,$message,$email); 
?> 

С этим я получаю четыре электронных писем (два с $ сообщения и два с $ электронной почте).

Проблема в том, что мне нужно все это в одном электронном письме. Таким образом, сообщение $ отправляется вместе с электронной почтой где-то в письме.

Любые идеи? (Мы надеемся, используя свою форму)

+0

Четвертый параметр функции почты предназначен для заголовков, а не для некоторых случайных адресов электронной почты. Также посмотрите [http://php.net/manual/en/function.mail.php](http://php.net/manual/en/function.mail.php) –

+0

Итак, любая помощь делать то, что я хочу? – Thomas

ответ

1

Существует пример, прямо из руководства PHP, который выглядит следующим образом: -

$to  = '[email protected]'; 
$subject = 'the subject'; 
$message = 'hello'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 

Четвертый параметр не просто адрес электронной почты - это заголовок: значение расположение типа с несколькими заголовками разделены с помощью \ г \ п

В вашем коде может быть, вы могли бы попробовать: -

if($_POST["submit"]) { 

    // The message 
    $message=$_POST["message"]; 

    $email=$_POST["email"]; 

    $headers='From: '.$email."\r\n". 
     'Reply-To: '.$email; 

    // In case any of our lines are larger than 70 characters, we should use wordwrap() 
    $message = wordwrap($message, 70, "\r\n"); 

    // Send 
    mail('[email protected]', 'Quick Pass', $message, $headers); 
} 
+0

Благодарим вас за помощь. Я пробовал это, но он не работал, снова просто отправляя содержимое сообщения. Откуда стоит $ mail? – Thomas

+0

Я только что заметил (!) Адрес электронной почты в переменной $ to - отсутствующий @ – RamRaider

+0

Нет, это был просто пример, мое письмо отличается и имеет @. Где почта $, приходящая из вашего примера? – Thomas

0

Убедитесь, что вы получаете вашу форму ввода правильно. затем попробуйте это.

// recipients 
$to = '[email protected]'; //your email address 
$user_email = $_POST["email"]; //input from form 
// subject 
$subject = 'Subject'; 
// message 
$message = $_POST["message"]; 
// set conent type 
$headers = 'MIME-Version: 1.0' . "\r\n"; 
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
$headers .= 'From: User Email <'.$user_email.'>' . "\r\n"; 
// Mail it 
mail($to, $subject, $message, $headers); 
+0

Спасибо. Но это для формы, поэтому пользователь вводит свой адрес электронной почты. Поэтому я не буду знать, кто из: Ваше имя <[email protected]> 'будет – Thomas

+0

, если вам это не нужно, просто не добавляйте, поскольку у меня есть обновленный код для вас. и заставьте вас указать правильный адрес электронной почты .. пожалуйста ... он должен работать. –

+0

Но ваш пример не показывает адрес электронной почты пользователей, который мне нужен – Thomas

0

Как предыдущие плакаты сказал, четвертый параметр идентификатор для заголовков, так что должно быть «From: {$} по электронной почте» или аналогичный.

Однако почтовые серверы иногда конфигурируются для игнорирования заголовков и установки значения по умолчанию. Также вы можете обнаружить, что сообщение игнорируется где-то вдоль маршрута электронной почты (с помощью собственного сервера ретрансляции вашего хоста или вашего входящего почтового сервера вашего почтового сервера), если адрес отправки не соответствует ни одной записи DNS MX для данного домена. Вам нужно будет поговорить с вашим хостинг-провайдером (-ами), чтобы исследовать это.

Смежные вопросы