【发布时间】:2016-04-11 19:38:11
【问题描述】:
我的代码似乎由于某种原因无法正常工作。
我在这里没有使用真实密码。
它给了我服务器错误#500。
这是我的代码:
<?php
require 'PHPMailerAutoload.php';
$mail = new PHPMailer;
$mail->isSMTP();
$mail->Host = 'dallas137.arvixeshared.com';
$mail->SMTPAuth = true;
$mail->Username = 'ask@pocketrabbi.com';
$mail->Password = '~~~~~~';
$mail->SMTPSecure = 'tls';
$mail->Port = 465;
$mail->setFrom('ask@pocketrabbi.com', 'Questions');
$mail->addAddress('pocketrabbi@gmail.com', 'PocketRabbi');
$mail->addReplyTo('ask@pocketrabbi.com', 'Questions');
$mail->isHTML(true);
$mail->Subject = 'New Question';
$mail->Body = 'Email: ' . $_POST["email"] . '/n Question: ' . $_POST["question"];
if(!$mail->send()) {
echo 'Message could not be sent.';
echo 'Mailer Error: ' . $mail->ErrorInfo;
} else {
header( 'Location: http://www.pocketrabbi.com/thankyou.html' ) ;
}
?>
非常感谢您的帮助。
此致,
初学者
【问题讨论】:
-
您的日志中完整的 500 错误消息是什么? 500 = 内部服务器错误。可能会发生很多事情。
-
您可能需要检查您的错误日志并分享它。 500 错误只是一般的“发生错误”。如果您使用的是 apache,它可能位于 /var/log/httpd/error_log 中,具体取决于配置。如果您分享这些信息,我们可能会为您提供更多帮助。或者那里的错误消息可能会使问题对您更加明显。
-
仅供参考,在以下行中:
$mail->Body = 'Email: ' . $_POST["email"] . '/n Question: ' . $_POST["question"];你有一个不正确的 new-line/n当它应该是\n并且也应该用双包裹引用:$mail->Body = "Email: " . $_POST['email'] . "\nQuestion: " . $_POST['question"']; -
我使用的是真正的在线服务器,所以无法访问那里,抱歉。
-
您能否详细说明返回 500 错误的原因,是运行此脚本的 Web 服务器还是您连接的 SMTP 服务器?正如@Marcus 提到的,HTTP 500 表示内部服务器错误,但 SMTP 500 表示语法错误。