Электронный почтовый сервер не посылает сообщения и дает ошибку в помещении

У меня есть следующий код:

$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];

$to = "xxxx@gmail.com"; 
$subject = "Hello"; 
$body = "You have received a message from " . $name . " (" . $email . "):\n\n" . $message;
$from = "From:"; 
$headers = "From:" . $from . "\r\n";
$headers .= "Reply-To: " . $from . "\r\n";
$headers .= "X-Mailer: PHP/" . phpversion();    

if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
    if ($name != '' && $email != '' && $message != '') {       
        if (mail ($to, $subject, $body, $headers)) { 
            echo '<p style="color:#66A325;">Thanks! Your message has been sent.</p>';
        } else { 
            echo '<p style="color:#F84B3C;">Something went wrong, go back and try again!</p>'; 
        } 
    } else {
        echo '<p style="color:#F84B3C;">You need to fill in all required fields!</p>';
    }
} else {
    echo '<p style="color:#F84B3C;">Invalid Email, please provide an correct email.</p>';
}  

Я это называю с формуляра:

<form id="contact-form" [![introducir la descripción de la imagen aquí][1]][1] method="post" action="contact.php">
<input  type="text" name="name" placeholder="Nombre">
<input  type="email" name="email" placeholder="Email">
<textarea  name="message" placeholder="	Escriba su comentario.></textarea>
<input  type="button" value="Enviar Mensaje">
<input  type="reset" value="Reestablecer los campos">
</form>	

Это код javascript:

<script>
        $(document).ready(function(){
            $('#send').click(function(){
                $(this).val('Enviando ...');
                $('#success p').remove();
                $.post('contact.php', $('#contact-form').serialize(), function(response) {
                    $('#success').html(response);
                    //$('#success').hide('slow');
                    $('#send').val('Enviar Mensaje');
                });
                return false;
            });
        });
        </script>

Ошибка:

Warning: mail(): Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in C:\wamp\www\contact.php on line 22

Он дает мне ошибку тестируя это локально, но когда я это разворачиваю на сервере, говорит, что сообщение было послано, но сообщение никогда не прибывает в электронную почту, которой проблема может быть?

2
задан 06.03.2016, 00:13
1 ответ

У тебя нет конфигурировавший переменных SMTP в php.ini, назначенные по умолчанию указывают в localhost в порту на 25. Если твой сервер SMTP не в той же команде, что и Веб, ты не сможешь посылать с этой конфигурацией, будешь должен помещать IP и порт удаленного сервера

[mail function]
; For Win32 only.
; http://php.net/smtp
SMTP = localhost
; http://php.net/smtp-port
smtp_port = 25

; For Win32 only.
; http://php.net/sendmail-from
;sendmail_from = me@example.com

; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
; http://php.net/sendmail-path
;sendmail_path =
2
ответ дан 24.11.2019, 14:46
  • 1
    Но из-за которого не env и # 237; в mails однажды пересланный в Веб этот код?? – nico183200 06.03.2016, 15:52
  • 2
    #191; у Тебя есть сервер SMTP на сервере, где ты поднимаешься c и # 243; я говорю Веба? Ты должен конфигурировать PHP для того, чтобы env и # 237; и в trav и # 233; s сервера SMTP – Manuel Barallobre Seoane 06.03.2016, 15:54
  • 3
    если, равный уже я это решил с другой функцией, спасибо – nico183200 07.03.2016, 16:00
  • 4
    Быть и # 237; в и #250; til знать cu и # 225; l был твоей проблемой и cu и # 225; l был soluci и # 243; n для последующих консультаций пользователей, он мне кажется q в и # 250; n схвати и # 237; я ответ был soluci и # 243; n в твою проблему, обязанность и # 237; схвати помечания ее как soluci и # 243; n – Manuel Barallobre Seoane 07.03.2016, 20:34

Теги

Похожие вопросы