服务器发送的电子邮件偶尔会包含奇怪的字符

时间:2009-12-31 15:59:50

标签: email smtp cdo.message

在过去的一年里,至少现在我的网站的十几个用户经历了他们收到的电子邮件中出现的奇怪字符。我已经多次研究过这个问题,并且几乎把它写成了用户端的某种编码问题。因为我从来没有能够复制这个问题,所以这个结论对我来说并不合适。

奇数字符实际上不是偶数字符,它们是一系列代表高级字符(如句号)的字符。例如,= 2e出现在应该出现的时间段。每个行结尾都会显示一些其他字符串。根据我过去研究过的,这种类型的编码是相当标准的,称为Quoted Printable,只有很老的电子邮件软件无法读取。每次发生这种情况时,我都会询问受影响的用户正在使用的操作环境相同的旧问题,并且他们从不使用旧客户端,因此应该正确呈现QP。受问题影响的收件人与不受影响的收件人之间似乎没有区别。

受影响的电子邮件由我的网络服务器自动发送,不会应用任何特殊编码。由ServerObjects Inc.使用ASPMail从ASP经典应用程序发送的相当标准。

任何人都有任何想法可能导致这种情况,或者我在纠正其最终用户编码问题无法正确呈现时更正了?


对此有点了解......

我最近发现,如果我们要将来自我们服务器的邮件作为纯文本而不是HTML邮件发送 - 那么奇怪的字符就不存在了。这仅在发送HTML邮件时发生。

2 个答案:

答案 0 :(得分:0)

我在their site上发现了这些信息:


我们的一些电子邮件在某些邮件的行尾有相同的符号。为什么?
AspMail可以使用=符号的方案编码高字符 表示要解码的字符,后跟十六进制字符串值 要编码的字符。该系统当然假定客户端可以解码这些字符(大多数都可以)。这称为quoted-printable encoding。 AspMail的默认设置是不使用QP编码。触发自动QP编码的事情:

  1. 高字符 - 具有以下序数值的字符0..31,61,128..255
  2. 邮件正文的长行(> 255)。您可以打开自动换行来修复此案例
  3. 大多数客户端都能够处理QP编码。如果您的客户不具备,那么您应该升级您的客户端,或者您必须在上述限制范围内工作以防止QP编码发生。


    因此,根据我的理解,他们将其固定在最终用户的客户端

答案 1 :(得分:0)

我们在工作中遇到这个问题。用户将获得奇怪的字符,剥离的字符,缺少的内容等。大多数时间它是由电子邮件软件。电子邮件中的CSS会导致Outlook和Gmail出现奇怪问题。我们有一种情况,电子邮件应该说,“你好鲍勃”,它只是说,“地狱鲍勃”。

如果用户将他们的电子邮件从一个帐户转发到另一个帐户,那么他们很可能会收到一封由转发帐户过滤的电子邮件。因此,如果Gmail删除了字符,那么只要它转发该电子邮件,收件人就会获得删除的字符。

我们的电子邮件服务还有其他问题没有正确合并模板和数据,但这似乎不是这种情况。