2016-10-22 3 views
0

Я получаю эту ошибку при заполнении формы на моей целевой странице: Вот код в thankyou.phpОшибка SMTP: не удалось подключиться к узлу SMTP. не работает

<?php 
    require 'class.phpmailer.php'; 
    if(isset($_POST['submit'])) 
    { 
     $mail = new PHPMailer; 
     $mail->isSMTP(); 
     $mail->Host = 'webmail.example.com'; 
     $mail->Port = 587; 
     $mail->SMTPSecure = 'tls'; 
     $mail->SMTPAuth = true; 
     $mail->Username = 'digital'; 
     $mail->Password = '*******'; 
     $mail->setFrom('[email protected]', 'example'); 
     $mail->addReplyTo('[email protected]', 'example'); 
     $mail->addAddress('[email protected]', 'example'); 
     $name_field = $_POST['name']; 
     $mobile_field = $_POST['mobile']; 
     $project_field = $_POST['project']; 
     $utm_source_field = $_POST['USOURCE']; 
     $utm_medium_field = $_POST['UMEDIUM']; 
     $utm_campaign_field = $_POST['UCAMPAIGN']; 

     $mail->Subject = "Website Inquiry - $project_field"; 
     $mail->msgHTML($body); 

     if (!$mail->send()) { 
      $error = "Mailer Error: " . $mail->ErrorInfo; 
      ?> 
      <script>alert('<?php echo $error ?>');</script><?php 
     } 
     else { 
      echo ''; 
      header("Location: thankyou.html"); 
     } 
    } 
?> 

С той же установкой, если я загрузить файлы на другой сервер, он работает отлично без какого-либо вопрос. Может ли кто-нибудь сказать мне, как решить эту проблему?

Спасибо,

ответ

0

Просто, чтобы убедиться, вы замените example.com с фактическим сервером SMTP в коде?

Если нет, это ваша проблема: используйте настоящий сервер.

Во-вторых, я заметил, что вы использовали субдомен:. * Веб-почты

Вы уверены, что домен указывает на сервер SMTP, или это просто веб-адрес для пользователей, чтобы проверить свою электронную почту?

Обычно серверы SMTP являются subdomained как: smtp.example.com

Вы можете проверить в ваших DNS-записей, чтобы увидеть зонд для сервера электронной почты, как это:

dig exmaple.com mx

Возвращение списка серверов MX - хорошие кандидаты, чтобы попробовать.

Предполагая, что у вас есть сервер правильно: некоторые интернет-провайдеры в некоторых странах заведомо блокируют почтовые порты, чтобы обуздать спам. Вы можете отлаживать свою сетевую ссылку, используя telnet вручную с терминала.

telnet webmail.example.com 587

Если вы получаете интерактивный ответ, то вы могли бы понять, что что-то делать с аутентификацией. Если вы не получите ответа, то вы знаете, что проблема связана с сетевым транспортом.

Проверьте, разрешен ли ваш интернет-провайдер порт 587, а также что на вашем SMTP-сервере открыт порт брандмауэра.

+0

1. да, я заменил url с примером.com – Mansoor

+0

2. host = webmail.example.com правильный и использовал ранее, который работал также. Что-то не так с PHP-кодом? – Mansoor

+0

Да, код выглядит хорошо для меня. Вы пробовали запустить telnet с терминала ?: 'telnet webmail.example.com 587' Соединяет ли это? – Cyril

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

  • Нет связанных вопросов^_^