Скрипт электронной почты сообщает об успехе, но электронная почта не появляется в моем почтовом ящике - PullRequest
2 голосов
/ 01 июня 2011

Я создал форму, которая связана со страницей PHP, например:

<form method="get" action="contact.php">
<p>Nome:</p> <input type="text" name="name" class="name" /><br>
<p>E-mail :</p> <input type="text" name="mail" class="mail" /><br>
<p>Website:</p> <input type="text" name="website" class="website" /><br>
Mensagem: <textarea name="message" class="message" rows="2" cols="20"></textarea>        
<input type="submit" value="Enviar" class="submit" />
</form>

Страница PHP:

<?php 
$field_name = $_GET['name'];
$field_email = $_GET['mail'];
$field_website = $_GET['website'];
$field_message = $_GET['message'];
$mail_to = '__munged__@gmail.com';
$subject = 'Message from a site visitor ' . $field_name;
$body_message = 'From: '.$field_name."\n";
$body_message .= 'E-mail: '.$field_email."\n";
$body_message .= 'Message: '.$field_message;
$headers = "From: $field_email\r\n";
$headers .= "Reply-To: $field_email\r\n";
$mail_status = mail($mail_to, $subject, $body_message, $headers);
if ($mail_status) { ?>
<script language="javascript" type="text/javascript">

    alert('Thank you for the message. We will contact you shortly.');

    window.location = 'index.html';
</script>
<?php
}
else { ?>
<script language="javascript" type="text/javascript">
    // Print a message
    alert('Message failed. Please, send an email to __munged__@template-help.com');
window.location = 'index.html';
</script>
<?php
}?>

Кажется, я не могу понять проблему.Заранее спасибо.

Ответы [ 3 ]

0 голосов
/ 01 июня 2011

Это простой способ сделать.

Удалить неиспользуемые пробелы из предмета. Не используйте динамическую переменную с темой, такой как $ field_name.

использовать функцию php5 @mail

0 голосов
/ 01 июня 2011

Проверьте настройки сервера smtp в разделе [mail function] файла php.ini.Почтовый сервер, вероятно, получил сообщение успешно, иначе он вернет ошибку.Я бы попробовал использовать другой почтовый сервер.

0 голосов
/ 01 июня 2011

Если бы у вас был доступ к веб-хосту, я бы сказал, попробуйте найти файл apache2.log на сервере Ubuntu, который находится в /var/log/, но я не знаю, где это будет для вас.В любом случае, если вы найдете это, вы можете просмотреть последние записи в журнале, чтобы убедиться, что apache выдает ошибку во время выполнения этой команды, которая в противном случае скрыта от пользователя.Похоже, что есть проблема с почтовым сервером.У вас есть одна установка?вы используете sendmail или какой-то другой вариант?

У меня недавно были некоторые проблемы с отправкой почты, это может помочь вам (но, как я уже говорил, это касается linux)

php5 mail () функция sendmail error

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