2017-01-17 123 views
0

我一直使用PHPmailer与GoDaddy托管的网站发生500内部服务器错误;我已经尝试了几种与我的挑战相关的StackOverflow解决方案,但都没有成功。PHPmailer - 500内部服务器错误

这里是我的代码:

require 'phpmailer/PHPMailerAutoload.php'; 
$feedback=''; 
$flag = array(); 
if(isset($_POST["submitlogin"]) and $_SERVER['REQUEST_METHOD'] == "POST"){ 

    $name = seo_friendly_url($_POST['name']); 
    $email = seo_friendly_url($_POST['email']); 
    $subject = seo_friendly_url($_POST['subject']); 
    $message = seo_friendly_url($_POST['message']); 

    //Email 

    if (!preg_match("/([\w\-]+\@[\w\-]+\.[\w\-]+)/",$email)) { 
     $feedback="Invalid email format"; 
     array_push($flag,"false"); 
    }else { 
     array_push($flag,"true"); 
    } 
    //Email 

    //Name 
    if (preg_match('/^[-a-zA-Z0-9._]+$/', $name)){ 
     array_push($flag,"true"); 
    }else { 
     $feedback="Invalid name format"; 
     array_push($flag,"false"); 
    } 
    //Name 


    if (!in_array("false", $flag)) { 

     //SMTP needs accurate times, and the PHP time zone MUST be set 
     //This should be done in your php.ini, but this is how to do it if you don't have access to that 
     date_default_timezone_set('Etc/UTC'); 

     //Create a new PHPMailer instance 
     $mail = new PHPMailer; 
     //Tell PHPMailer to use SMTP 
     $mail->isSMTP(); 
     //Enable SMTP debugging 
     // 0 = off (for production use) 
     // 1 = client messages 
     // 2 = client and server messages 
     $mail->SMTPDebug = 2; 
     //Ask for HTML-friendly debug output 
     $mail->Debugoutput = 'html'; 
     //Set the hostname of the mail server 
     $mail->Host = "smtpout.asia.secureserver.net"; 
     //Set the SMTP port number - likely to be 25, 465 or 587 
     $mail->Port = 25; 
     //Whether to use SMTP authentication 
     //$mail->Username = '[email protected]'; 
     //$mail->Password = 'password'; 
     $mail->SMTPAuth = false; 
     //Set who the message is to be sent from 
     $mail->setFrom('[email protected]'); 
     //Set an alternative reply-to address 
     $mail->addReplyTo($email); 
     //Set who the message is to be sent to 
     $mail->addAddress('[email protected]');  // Add a recipient 
     $mail->addAddress('[email protected]'); 
     $mail->addAddress('[email protected]); 
     //Set the subject line 
     $mail->Subject = 'HLS Inquiry'; 
     //Read an HTML message body from an external file, convert referenced images to embedded, 
     //convert HTML into a basic plain-text alternative body 
     $mail->msgHTML($message); 







     $email_ar = $email; 
     $subject_ar = $name.", Thank you for your Inquiry"; 
     $acknowledgement_receipt = ' 
      <div style="padding:10px 20px;font-size:16px;"> 

       <p>Dear '.$name.',</p> 

       <p>We&#39;ve received your message and would like to thank you for contacting us. We will reply by email shortly.</p> 

       <p>Talk to you soon,</p> 

       <p> 
        <div>Customer Service</div> 

       </p> 

      </div> 
     '; 



     if ($mail->send()) { 
      $feedback = "<span style='color:green;'>Thank you for your inquiry. We will respond to you within 24 hours.</span>"; 
     } 

} 

请注意,我更换了一些电子邮件值的:[email protected]了我的隐私。

我认为,电子邮件的设置是正确的,因为我已经从我的朋友的网站主办Justhost的使用这些设置。

+0

尝试用双引号替换addAddress('[email protected]') - > addAddress(‘[email protected]’) –

回答

0

此行缺少一个单引号:

$mail->addAddress('[email protected]); 

这是SO很明显的,因为你可以看到语法在这一点突出休息。

当你得到一个错误500,显示什么,那就是你应该寻找在你的web服务器的错误日志的标志。

+0

我试图把缺少的单引号,但仍然没有工作:( 我在哪里可以看到服务器日志? – ASCII

+0

通常在'/ var/log/apache2/error.log'或类似的地方。 – Synchro