PHPMailer-语言字符串无法加载-在哪里执行?

时间:2019-01-12 16:28:59

标签: php phpmailer

首先,这不是Language string failed to load: from_failed[from_email_address]的重复项。我已经仔细研究了该帖子并尝试了建议,但是我总是会收到此错误:

  

语言字符串无法加载

重要:我可以让PHPMailer正常工作,这不是问题。

问题是,在偶尔由于用户输入错误密码或主机名错误而导致phpmailer失败的情况下,我从phpmailer收到了恼人的错误消息。因此,无需给出有关如何使phpmailer成功工作的建议-当设置正确时,我总是可以这样做。我要问的是为什么执行失败时会收到该讨厌的消息,怎么解决?

这是我尝试过的:

  • $mail->setLanguage("en", "PHPMailer/language/");
  • 我已确认语言路径存在-我可以看到它。
  • 我找到了phpmailer.lang-en.php(在PHPMailer/language/内)并在记事本中将其打开-一切都很好。
  • 我使用Astrogrep搜索我的PHPMailer目录树的内容。字符串“语言字符串加载失败”不存在-显然,当邮件发送失败时,PHPMailer会发出该字符串。
  • 我打开了class.phpmailer.php,找到了函数setLanguage(),并将die("just testing");放在了函数的最上面。我进行了测试。它不会被调用,也不会死。

如果我可以找到在phpmailer.lang-en.php处被调用或引用的位置,则可以轻松地解决此问题,但是我找不到它,也找不到该错误字符串的发出位置。我可以看到它在setLanguage()中被引用,但是显然没有调用该函数,所以我感到困惑。如果很重要,我将PHPMailer加载到我的php脚本中:require_once("PHPMailer/PHPMailerAutoload.php");

有什么想法吗?

1 个答案:

答案 0 :(得分:1)

该消息表示您使用的是非常非常旧的,有错误的,过时且易受攻击的PHPMailer版本。更新到最新版本。