Prestashop SMTP 测试电子邮件文本使用错误的 utf8 编码

问题描述 投票:0回答:1

我在 Prestashop 8.2.0 上激活了 SMPT 电子邮件选项,并尝试通过同一页面上的专用部分发送测试电子邮件,我输入了我的电子邮件并收到了电子邮件。

我注意到重音字符(例如

"é"
)在内容中显示为
"è"

我想了解这是否是一个错误,或者是否有一些特定的设置,商店是意大利语,需要重音字符

我将所有设置设置为意大利语并重新生成电子邮件,但我仍然遇到同样的问题,我不知道这个问题是否仅涉及测试电子邮件的预编译文本

php email encoding prestashop
1个回答
0
投票

您遇到的问题,即“é”等重音字符显示为 HTML 实体 (

è
),通常是由于编码不匹配或电子邮件内容处理和呈现方式出现问题而导致的。以下是调查和解决问题的方法:


1。检查 Prestashop 电子邮件编码设置

Prestashop 通常会自动处理电子邮件内容编码。但是,请确保:

  • 您的 SMTP 服务器支持 UTF-8 编码。
  • Prestashop 配置为对电子邮件内容使用 UTF-8。验证数据库、存储设置和模板是否使用 UTF-8 编码。

2。重新生成电子邮件模板

由于您已经重新生成了电子邮件模板,请仔细检查模板的编码:

  1. 导航至
    International > Translations > Email translations
  2. 选择意大利语并编辑电子邮件模板。
  3. 确保模板以正确的 UTF-8 编码保存。

3.检查测试电子邮件内容

该问题可能特定于测试电子邮件内容:

  • 测试电子邮件可能使用未正确本地化或未正确编码重音字符的预定义内容。
  • 打开测试电子邮件的
    Mail::Send()
    功能并验证电子邮件正文的构造方式。查找任何
    htmlspecialchars
    或编码不匹配。

4。调试电子邮件标头

检查收到的测试电子邮件的电子邮件标题。查找

Content-Type
字段以确保其指定 UTF-8:

Content-Type: text/html; charset=UTF-8

如果标头丢失或指定了其他编码(如 ISO-8859-1),请更新邮件配置。


5。测试另一个电子邮件模板

要确定问题是否特定于测试电子邮件:

  1. 触发另一封系统电子邮件(例如,帐户创建或密码重置)。
  2. 检查这些电子邮件中的重音字符是否正确显示。如果它们工作正常,问题可能出在预定义的测试电子邮件内容上。

6。应用临时修复

如果问题仍然存在,您可以修改测试电子邮件脚本:

  1. 找到负责发送测试电子邮件的文件(
    AdminEmailController
    或类似文件)。
  2. 构建电子邮件时显式设置编码:
    $mail->setCharset('UTF-8');
    

7。 Prestashop 错误报告

这可能是 Prestashop 8.2.0 中的一个错误。如果上述方法都不能解决问题:

  • 检查 Prestashop GitHub 存储库以获取类似报告。
  • 提交错误报告,包括有关您的配置、语言和 SMTP 设置的详细信息。

如果您需要进一步调试方面的帮助,请告诉我!

© www.soinside.com 2019 - 2024. All rights reserved.