Prestashop:"An error occurred while sending the message."

Prestashop: "An error occurred while sending the message."

我使用的是带有默认主题的 PrestaShop 1.7。 我也安装了联系表单模块。

但是当我尝试使用联系表单模块创建的联系表单从 "contact us page" 发送消息时。

它抛出以下错误:

An error occurred while sending the message, please try again.

我该如何解决这个问题?

我认为问题是您的电子邮件服务器没有正常工作,但在每次提交联系表单后,都会向管理员电子邮件地址发送一封电子邮件(默认情况下)。为避免此问题,您可以正确设置您的电子邮件服务器(在您的服务器上,然后在您的 prestashop 管理面板中)或关闭 高级参数中的选项 -> 电子邮件 -> 从不发送电子邮件(在这种情况下,管理员不会收到他的电子邮件中的消息,只会收到管理面板)。同样在这里,您可以通过最后一种形式将测试电​​子邮件发送到您自己的地址来测试您的电子邮件服务器是否正常工作 测试您的电子邮件配置。 希望我的建议对您有所帮助。

首先,确保正确设置电子邮件功能。通常,人们使用 PHP 邮件功能来发送电子邮件,但这不是一个好主意 - 有时,此功能已被托管服务提供商禁用,您的电子邮件将被发送到垃圾邮件而不是收件箱。

登录到管理面板 -> 点击“高级参数”,然后点击“电子邮件”选项卡。

然后您可以选择PHP邮件功能或SMTP服务器发送邮件。

我写了一篇关于 Prestashop SMTP Setting 的文章。希望这有帮助。

我刚弄明白问题所在

实际上,当通知第一次弹出时,我曾尝试将我的商店升级到 1.7.3.1。然后不知何故安装出错了,但我正在使用的模块,即一键升级,正在说类似“别担心,我们会恢复到您之前使用的版本。".

嗯,他们没有!我一开始没想到这可能是问题所在。

然后我开始考虑可能更改了哪些文件。使用在线文件比较工具,我发现 /modules/contactform 中的 contactform.php 与我之前使用的不同。

将该文件更改为旧文件后,问题就解决了!

如果该文件不是您的情况,如果您尝试将版本升级到较新的版本并且在过程中像我一样失败,我建议您尝试其他文件。

希望这可以帮助遇到同样问题的人,而不必像我一样思考几天。

问题是我认为 lang 文件夹不存在

你可以换行418 $this->context->controller->errors[] = $this->trans('An error occurred while sending the message, please try again.', array(), 'Modules.Contactform.Shop');

到 $this->context->controller->errors[] = $errorMessage = error_get_last()['message'];

通过这种方式您可以轻松查看完整的错误报告

对我来说,错误是 .lang/ 文件夹未退出

希望解决方案对您有所帮助。