2016-09-26 4 views
1

я иметь такую ​​форму, что отправить штраф на месте, но когда я загрузить его на Hostgator я получаю следующее сообщение об ошибкеPHP SMTP Пользовательские форма контакта

Mailer Error: Could not instantiate mail function.

мой PHP код

<?php 

if(isset($_POST['submit'])){ 

    require 'PHPMailer/PHPMailerAutoload.php'; 

    // Send mail 
    $mail = new PHPMailer(); 

    // Data received from POST request 
    $name = stripcslashes($_POST['tbName']); 
    $emailAddr = stripcslashes($_POST['tbEmail']); 
    $company = stripcslashes($_POST['tbCompany']); 
    $comment = stripcslashes($_POST['taMessage']); 
    $subject = stripcslashes($_POST['tbSubject']); 

    // SMTP Configuration 
    $mail->SMTPAuth = true; 
    $mail->Host = "gator3209.hostgator.com"; // SMTP server 
    $mail->Username = "****@*****.com"; 
    $mail->Password = "***********"; 
    $mail->SMTPSecure = 'tls'; 
    $mail->Port = 25; 

    $mail->AddAddress('****@*****.com'); 
    $mail->From = "****@*****.com"; 
    $mail->FromName = "Website Contact Form - " . $name; 
    $mail->Subject = $subject; 

    $mail->Body = 'This is the HTML message body <b>in bold!</b>';  
    $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 
    $mail->MsgHTML("Name:" . $name . "<br /><br />Email:" . $emailAddr. "<br /><br />Company:" . $company. "<br /><br />Subject:" . $subject. "<br /><br />" . $comment); 

    $message = NULL; 
    if(!$mail->Send()) { 
     $message = "Mailer Error: " . $mail->ErrorInfo; 
    } else { 
     $message = "Message sent!"; 
    } 

} 
?> 

I поговорили с моим хозяином, и они сказали, что в нем нет поддержки для борьбы с этими вещами, но сказал, что мой порт и хозяин верны.

Так что теперь я довольно смущен. есть ли что-то очевидное, что мне не хватает?

+1

Функция почты может быть заблокирован на ваш хостинг-провайдер. Обратитесь в службу поддержки, чтобы убедиться, что она не заблокирована. – Jer

+0

Кажется, я отсутствовал $ mail-> IsSMTP(); из моего раздела конфигурации SMTP. Приветствия за ссылку. помогли мне найти мою проблему. – ltjfansite

+0

Добро пожаловать :-) _http: //stackoverflow.com/questions/30648462/phpmailer-error-could-not-instantiate-mail-function_ – Jer

ответ

0

Просто, чтобы сообщить вам, если кто-нибудь найдет это, моя проблема была в том, что я отсутствовал $ mail-> IsSMTP(); из моей конфигурации.

SMTP, конфигурационный раздел должен быть следующим

<?php 

if(isset($_POST['submit'])){ 

    require 'PHPMailer/PHPMailerAutoload.php'; 

    // Send mail 
    $mail = new PHPMailer(); 

    // Data received from POST request 
    $name = stripcslashes($_POST['tbName']); 
    $emailAddr = stripcslashes($_POST['tbEmail']); 
    $company = stripcslashes($_POST['tbCompany']); 
    $comment = stripcslashes($_POST['taMessage']); 
    $subject = stripcslashes($_POST['tbSubject']); 

    // SMTP Configuration 
    $mail->SMTPAuth = true; 
    $mail->IsSMTP(); 
    $mail->Host = "gator3209.hostgator.com"; // SMTP server 
    $mail->Username = "****@*****.com"; 
    $mail->Password = "***********"; 
    $mail->SMTPSecure = 'tls'; 
    $mail->Port = 25; 

    $mail->AddAddress('****@*****.com'); 
    $mail->From = "****@*****.com"; 
    $mail->FromName = "Website Contact Form - " . $name; 
    $mail->Subject = $subject; 

    $mail->Body = 'This is the HTML message body <b>in bold!</b>';  
    $mail->AltBody = "To view the message, please use an HTML compatible email viewer!"; // optional, comment out and test 
    $mail->MsgHTML("Name:" . $name . "<br /><br />Email:" . $emailAddr. "<br /><br />Company:" . $company. "<br /><br />Subject:" . $subject. "<br /><br />" . $comment); 

    $message = NULL; 
    if(!$mail->Send()) { 
     $message = "Mailer Error: " . $mail->ErrorInfo; 
    } else { 
     $message = "Message sent!"; 
    } 

} 
?> 
Смежные вопросы