【问题标题】:PHPMailer not working with my emailPHPMailer 无法处理我的电子邮件
【发布时间】: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-&gt;Body = 'Email: ' . $_POST["email"] . '/n Question: ' . $_POST["question"]; 你有一个不正确的 new-line /n 当它应该是 \n 并且也应该用双包裹引用:$mail-&gt;Body = "Email: " . $_POST['email'] . "\nQuestion: " . $_POST['question"'];
  • 我使用的是真正的在线服务器,所以无法访问那里,抱歉。
  • 您能否详细说明返回 500 错误的原因,是运行此脚本的 Web 服务器还是您连接的 SMTP 服务器?正如@Marcus 提到的,HTTP 500 表示内部服务器错误,但 SMTP 500 表示语法错误。

标签: php phpmailer


【解决方案1】:

内部服务器错误 (500) 不是由您的 PHP 代码引起的。这意味着“服务器配置错误”

这几乎总是由于 .htaccess 文件中的拼写错误。在这一点上,您的 PHP 甚至没有被查看。网络服务器在尝试查找如何提供所请求的页面时发现错误。

【讨论】:

  • 在 IE 中它说:“网站无法显示页面 HTTP 500 最可能的原因: •网站正在维护中。 •__网站有编程错误.__ 您可以尝试:重新输入地址。”
  • 对,网络服务器“Apache”有错误,而不是你的 PHP 脚本。
  • 那我该怎么办? (关于.htaccess等...)
  • 看看你是否有一个 .htaccess 文件,或者可能是一个最近编辑过的 php,ini 文件。
【解决方案2】:

假设错误是 HTTP 500,您可能需要检查函数大小写(例如第 8 行)。我相信PHPMailer的所有函数都是以大写字母开头的。

【讨论】:

  • 来自代码库:/** * Send messages using SMTP. * @return void */ public function isSMTP() { $this-&gt;Mailer = 'smtp'; } 看起来是小写的 'i'。
猜你喜欢
  • 2019-01-19
  • 2023-03-20
  • 1970-01-01
  • 1970-01-01
  • 2015-09-06
  • 2020-11-25
  • 2017-07-19
  • 2017-10-05
  • 1970-01-01
相关资源
最近更新 更多