包含不正确结果的电子邮件,从 Zencart 1.3.8 中的 PHP 邮件发送


email enconding improper result, send from php mailer in zencart 1.3.8

除了知道我遇到了问题之外,我对编码知之甚少,我正在使用 zercant 1.3.8 中的恢复购物车销售模块向在没有完成购买的情况下放弃购物车的人发送自动电子邮件,问题是我的语言使用了"cão、macarrão、há、número、contúdo"这样的词,而且它们都写错了,

发送的电子邮件示例:

mas que não completou a transacção.

我该如何解决这个问题?

发送的电子邮件标题是这样的:

To: [edited for stackoverflow]
Subject: [edited for stackoverflow]
X-PHP-Script: [edited for stackoverflow]
Date: Sun, 20 May 2012 04:44:36 -0500
Return-Path: [edited for stackoverflow]
From: [edited for stackoverflow]
Reply-to: [edited for stackoverflow]
Message-ID: [edited for stackoverflow]
X-Priority: 3
X-Mailer: PHPMailer [version 1.73] via Zen Cart
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain; charset="iso-8859-1"

你能帮我正确发送电子邮件吗?

电子邮件标题很好(是ISO-8859-1的一部分( - 所以它在ZenCart方面。我对ZenCart了解不多,但也许您的网站是UTF-8?

PHPMailer 默认编码是 iso-8859-1,您可以尝试更改它:

<?php
$phpMailerObj->CharSet = 'UTF-8';

您还应该尝试不同的电子邮件客户端。为了您自己的利益,请在任何地方使用 UTF-8。

您有几个问题:

  • 您使用的是具有已知安全问题的过时版本的Zen Cart。如果您的网站被黑客入侵,那么由于恶意入侵者对您的网站进行了更改,给出的任何正常建议都可能无法正常工作。你真的应该升级到现代版本。您的版本于 2007 年发布。

  • 正如 Damien 所建议的那样,您很可能有混合字符集。数据库和语言文件以及数据库连接都需要使用相同的字符集配置。v1.3.9h 中添加了对指定字符集的支持,并在 v1.5.0 中进一步改进。您正在使用 v1.3.8,它需要特定的代码更改才能添加对备用字符集的支持,这再次证实了您需要升级。