2013-09-14 5 views
1

У меня есть код, который работал для меня в прошлом, но больше нет, по какой-то причине я не понимаю. Я уверен, что проблема не в самом коде, так как 1) я ничего не изменил, и 2) он работал для меня в прошлом. Я использую XAMPP и PHP.PHP-адрес электронной почты отправлен успешно, но не получен Gmail

Наша веб-страница позволяет пользователю заполнить контактную форму и отправить электронное письмо через PHP. Кажется, он успешно выполняется, так как в результате пользователь получает «thankyou.html». Чтобы устранить эту проблему, у меня есть 1) очистка кеша моего браузера и 2) проверка папки спама в Gmail.

Но я все еще не могу найти свою электронную почту и не знаю почему. Я не знаком с тем, как работает SMTP; если проблема связана с этим, тогда я был бы признателен за объяснение.

Вот код:

<?php 
$field_first_name = $_POST['cf_first_name']; 
$field_last_name = $_POST['cf_last_name']; 
$field_email = $_POST['cf_email']; 
$field_message = $_POST['cf_message']; 
$field_reference = $_POST['cf_reference']; 

$mail_to = '[email protected]'; 
$subject = 'Message from a website visitor '.$field_first_name.' '.$field_last_name; 

$body_message = 'From: '.$field_first_name."\n"; 
$body_message .= 'E-mail: '.$field_email."\n"; 
$body_message .= 'Message: '.$field_message."\n"; 
$body_message .= 'Reference: '.$field_reference; 

$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 = 'thankyou.html'; 
     </script> 
<?php 
} 
else { ?> 
     <script language="javascript" type="text/javascript"> 
       alert('Message failed. Please, send an email to [email protected]'); 
       window.location = 'home.php'; 
     </script> 
<?php 
} 
?> 

Любой вклад высоко ценится!

+0

Вы проверили отправителе электронный почтовый ящик для возвращенного по электронной почте? –

+0

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

+0

@ JA, я проверил почтовый ящик отправителя оригинала, я не вижу никаких отсканированных писем. @dianuj: Я новичок в этом ... как я могу проверять журналы сервера? Кроме того, я пробовал отправлять/получать с двух новых адресов электронной почты, чтобы избежать временной блокировки моей учетной записи, но я по-прежнему не получаю никаких писем ... – alexfigtree

ответ

0

По крайней мере, AOL автоматически падает все письма, отправленные на РНР внутренние mail (я не знаю, как они обнаруживают, он просто не будет отображаться в почтовом ящике).

Решение состоит в использовании электронной почты, такой как PHPMailer, и отправки электронной почты с помощью реального SMTP-сервера.

Редактировать: Имеет ли ваш локальный компьютер динамический или фиксированный IP-адрес? Почти каждый серьезный SMTP-сервер отклоняет электронные письма, отправленные динамическими IP-адресами.

+0

Как я уже упоминал ранее, я смог отправить электронную почту в свою учетную запись Gmail (хотя они появились в моей папке «Спам») без проблем. Я бы предпочел избежать использования ненужных библиотек электронной почты ... – alexfigtree

0

Я использую это: (в моем веб-сайте, а не в XAMPP)

$from = "[email protected]"; 
$to = "[email protected]"; 
$subject = "subject"; 
$mailtext = "blablabla"; 
mail($to, $subject, $mailtext, "From: $from "); 

И это работает!

Но я попробовал с XAMPP, а ничего не происходит :( Так что я не знаю, как пользоваться почтой() с XAMPP.

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