2014-09-08 3 views
-3

Я создал контактную форму, используя почтовую функцию, все просто отлично, но есть проблема, отправив почту с yahoo на gmail! любой адрес электронной почты для любого сообщения является хорошим (даже от gmail до yahoo). Но когда письмо идет от yahoo к gmail, оно не работает!php mail не отправляется с yahoo на gmail

Как это:

mail("[email protected]",$subject,$message,"From :[email protected]"); 

Эта доза не работает! как исправить это?

весь код:

<?php 
    $headers = "MIME-Version: 1.0" . "\r\n"; 
    $headers .= "Content-type:text/html;charset=UTF-8" . "\r\n"; 
    $headers .= "From: ".$email; 
    $subject=$form_name." - ".$subject; 
    $message=nl2br($message); 
    $message=$message."<br /><br /><br />".$name."<br />".$phone."<br />".$web; 
    $message = wordwrap($message, 70, "\r\n"); 
    if(mail($send_to,$subject,$message,$headers)){ 
     echo "<p class='success'><span></span> ".$success."</p>"; 
    } 
    else{ 
     echo "<p class='error'><span></span> there was a problem, please try again</p>"; 
    }; 
    ?> 
+0

Не уверен, что я понимаю, что это ваша проблема :) – MrD

+0

если я установить [email protected] и отправить к = некоторым @ gmail.com. com, доза не работает! – the110boy

+0

Можете ли вы добавить пример того, что вы пишете, когда он работает? – pstenstrm

ответ

2

Скорее всего, это не удается из-за проверки безопасности - ваш сервер не связан с Yahoo.com, таким образом, когда происхождение IP-адрес электронной почты проверяется против домен адреса электронной почты отправителя, он не работает и электронное письмо заблокировано. Только некоторые поставщики электронной почты выполняют этот уровень проверки.

Если ваша цель состоит в том, чтобы ваш адрес электронной почты yahoo отображался как ответ на адрес, попробуйте установить его, используя заголовок reply-to: вместо заголовка from:. Подробнее см. В документах PHP mail(). Используйте соответствующий или по умолчанию адрес вашего домена или сервера. Это даст вам наилучшие результаты, чтобы убедиться, что ваши электронные письма действительно доставлены.

+0

проблема есть, все работает нормально: mail ("[email protected]", $ subject, $ message, "FROM: [email protected]"); проблема только когда я пытаюсь отправить в gmail, я могу отправить yahoo на yahoo, gmail на yahoo, gmail на gmail, ... но не могу отправить yahoo в gmail !! – the110boy

+0

Да, как указано в моем ответе, только некоторые интернет-провайдеры будут проверять, что электронное письмо было отправлено с сервера с IP-адресом, зарегистрированным в домене адреса FROM:. Gmail, Comcast и AOL (плюс многие небольшие компании) - это единственные, кого я знаю об этом. – Wige

+0

хорошо, это обычное?Должен ли я делать что-то в качестве программиста? – the110boy

0

Когда ваш почтовый сервер отправляет электронное письмо, проверяется запись DNS SPF, чтобы гарантировать, что на вашем сервере разрешено отправлять электронные письма, где от адреса установлено значение yahoo.com или gmail.com. Если нет записей SPF, которые сообщают, что вашему серверу разрешено отправлять электронные письма для домена yahoo.com, это означает, что ваш сервер, возможно, отправляет СПАМ. Таким образом, некоторые почтовые серверы могут отклонять электронные письма, полученные с вашего сервера.

0

Я только что решил ту же проблему, переместив адрес электронной почты отправителя из заголовка «from» в заголовок «reply-to».

Набор из что-то вроде «[email protected]»

Set Reply-к (добавить строку в коде) с отправителя электронной почты.

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

Хотя эта проблема возникает только с Yahoo/Gmail ...

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