1

[UserFrosting 0.3.x]

我刚刚设置了 UserFrosting,一切看起来都在工作,除了一件小事......

当用户注册时,出现错误“尝试邮件时出现致命错误,请联系您的服务器管理员”

在 中config-userfrosting.php,smtp 部分填写为:

        'mail' => 'smtp',
        'smtp'  => [
            'host' => 'smtp.scottywcreates.com',
            'port' => 465,
            'auth' => true,
            'secure' => 'ssl',
            'user' => 'userfrosting@scottywcreates.com',
            'pass' => '------'
        ],

(密码涂黑了)

为什么我会收到此错误?

4

1 回答 1

1

用户看到的消息只是一般错误消息,表明邮件服务器存在问题。它故意避免提供您可能不想向公众披露的具体细节。

要找出具体的错误情况,您需要检查您的 PHP 错误日志。请检查您的特定服务器配置以查找 PHP 错误日志的位置。

UserFrosting 使用PHPMailer发送邮件。默认情况下,PHPMailer 不输出任何详细的 SMTP 错误信息,因此您可能还会在错误日志中看到一般的异常消息(例如,“SMTP 错误:无法验证。”)

要获得更详细的错误信息,您可以userfrosting/models/Notify/Notification.php修改和更改 PHPMailer 的默认设置。将以下配置值添加到其他 SMTP 配置值:

$mail->Debugoutput = 'error_log';
$mail->SMTPDebug = 4;

这将告诉 PHPMailer 将非常详细的连接和错误信息转储到 PHP 错误日志中。完成此操作后,您应该能够看到您的 SMTP 服务器究竟为什么拒绝 UserFrosting 的电子邮件。

SMTP 失败的常见原因:

  • 许多 SMTP 服务器要求经过身份验证的帐户(在您的情况下为userfrosting@scottywcreates.com)与From实际电子邮件中的地址匹配。默认情况下,帐户验证电子邮件从配置 -> 站点设置下设置的“帐户管理电子邮件”地址发送。因此,您可以尝试检查它是否与您在config-userfrosting.php.
  • 使用错误的端口或身份验证方法。请参阅电子邮件疑难解答wiki。
于 2016-08-30T22:32:33.177 回答