Письмо, отправленное через скрипт, не доставлено - PullRequest
0 голосов
/ 18 апреля 2011

Я новичок в php и пытаюсь отправить данные формы по электронной почте с помощью функции php mail ().По какой-то причине моя форма обрабатывается и переходит на страницу благодарности, но я не получаю электронные письма с данными.Я проверил свой код, но не могу найти, что не так!Может кто-нибудь, пожалуйста, помогите мне?Вот пример моего кода:

<form class="form-wrapper" action="process_form.php" method="post">

      <label for="costumer_name">First Name</label><br/>
      <input type="text" name="costumer_first_name"/>

<button type="submit">Send</button>
</form>

Это код process_form.php

<?php
$CustomerFirstName = $_POST['customer_first_name'];

// Build the email 

$to = "my@mailinator.com";
$headers = "From: $Email";
$subject = "Red T-shirt Web Order";
$message = "Red T-shirt Order Information:\n\n
Customer First Name:".$CustomerFirstName."\n";

// Send the mail using PHPs mail() function
mail($to, $subject, $message, $headers);


// Redirect
header("Location: thank_you.php");
?>

Спасибо:)

Ответы [ 5 ]

1 голос
/ 18 апреля 2011

Попробуйте просто сделать статический вызов с:

mail('your@email.com', 'Test Subject', 'Test Message');

Если это не сработает, то это, вероятно, ваш SMTP-сервер или его отсутствие.

Редактировать: Кроме того, поскольку $ Email не отправляется, вы отправляете заголовок «From:», который является недопустимым заголовком и, вероятно, приведет к сбою SMTP. Я знаю, что это происходит на нашем сервере, который использует MailEnable, потому что раньше я сталкивался с точной ошибкой.

0 голосов
/ 18 апреля 2011

Как уже упоминал Нил, вы не собирали письмо из формы и не получали значение этой переменной в своем PHP-коде.

Также $ CustomerFirstName не будет вставлен в ваше сообщение $ с чем-либо, потому что в вашем PHP-коде вы обозначаете его как

$CustomerFirstName = $_POST['customer_first_name'];

, тогда как клиент пишется с буквой u, но в вашем HTMLпишется с буквой о.

0 голосов
/ 18 апреля 2011

$CustomerFirstName = $_POST['customer_first_name'];

<input type="text" name="costumer_first_name"/>

customer_first_namecostumer_first_name

Найдите разницу!:-)

Кроме того, $Email не определено и внутри кавычек, необходимо определить и "From: " . $Email;

0 голосов
/ 18 апреля 2011

Я думаю, что вы пропустили указание имени хоста SMTP

0 голосов
/ 18 апреля 2011

проблема может быть в этой строке:

$headers = "From: $Email";

Я не вижу $Email когда-либо созданных в вашем коде.

Также mail() работает по-разному для Windows и Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...