PHPmailer - 500内部服务器错误

时间:2017-01-17 10:04:46

标签: php phpmailer

我使用PHPmailer继续使用GoDaddy托管我的网站时出现500内部服务器错误;我已经在StackOverflow上尝试了几个与我的挑战相关的解决方案,但没有一个能够工作。

这是我的代码:

show_layout()

请注意,我将部分电子邮件值替换为: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@email.com'; //$mail->Password = 'password'; $mail->SMTPAuth = false; //Set who the message is to be sent from $mail->setFrom('email@email.com'); //Set an alternative reply-to address $mail->addReplyTo($email); //Set who the message is to be sent to $mail->addAddress('email@email.com'); // Add a recipient $mail->addAddress('email@email.com'); $mail->addAddress('email@email.com); //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>"; } } 以保护我的隐私。

我相信电子邮件设置是正确的,因为我已经使用了JustHost托管的朋友网站上的设置。

2 个答案:

答案 0 :(得分:0)

此行缺少单引号:

$mail->addAddress('email@email.com);

这在SO中非常明显,因为您可以看到语法突出显示在该点处如何中断。

如果您收到错误500并且未显示任何内容,则表示您应该查看Web服务器的错误日志。

答案 1 :(得分:0)

有一个用于编写PHPMailer类的“拆分”函数。长期以来不建议使用此功能,因此在更高版本的PHP中会出现错误。 找到它们并替换为“ explode”。 这对我有用。