代码之家  ›  专栏  ›  技术社区  ›  StingyJack

以英文发送的电子邮件以图片字母(中文、日文等)和随机字符显示给最终用户

  •  -2
  • StingyJack  · 技术社区  · 16 年前

    我有向用户发送HTML电子邮件的代码。为了适应没有/想要HTML电子邮件的用户,电子邮件包含2个备选视图,视图(0)是HTML,视图(1)是纯文本。

    HTML视图有一个页眉和页脚图形,但样式是内联的,而不是通过css文件。文本视图只是文本;没有标签、图像等。该邮件附有3个pdf文件。

    当大多数用户收到消息时,他们看起来很好。没有损坏的图像链接,没有乱码文本等。

    当其他人收到消息时,会发生以下两种情况之一。

    • 整个HTML备选视图打包为附件(3个pdf作为附件),父消息包含这样的图片字母表/随机字符。..

    "奐桴浬啂圳呄呍牡湳楴楯湡氯丢桴浬桥慤 敡搾潤礠执捯汯爽∣晦晦晦∠瑥硴〢扲潤社桴浬 "

    • 电子邮件随附件一起收到,但电子邮件的文本与之前的乱码相似。

    电子邮件是使用系统发送的。网。邮件类。它读取XML模板来构造电子邮件,所以在这里发布有点长,但很简单。

    对电子邮件有问题的用户来自comcast.net和其他公司地址。

    我确实意识到,从接收者的角度来看,这封电子邮件来自一个未知的发件人,有图形,有附件,因此在某些情况下可能会被识别为垃圾邮件,但这是商业界想要的,所以他们得到了。

    我的直觉告诉我这是某种编码问题,我对所有格式都使用Unicode,这是一个糟糕的假设吗?编辑:检查 this 以确定我的理解。

    有人知道是什么导致了这种情况,或者有什么建议可以补救吗?

    编辑@some:html电子邮件有

    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    

    顶部是AlternateView。CreateAlternateViewFromString()方法正在获取System。文本。编码。已应用Unicode(utf-16)。我可以看到这可能存在冲突的地方,并将对其进行更新,但这可能需要一些时间来确定是否已修复。

    用户在完成注册过程后只会收到一封电子邮件,但我们已将此电子邮件发送到另一个康卡斯特电子邮件帐户,查看时没有问题。

    编码是特定的还是由操作系统或电子邮件客户端(浏览器、outlook/express)强制的?

    (如果有帮助,请发布答案,以便获得投票!)

    3 回复  |  直到 16 年前
        1
  •  1
  •   adam    16 年前

    理想情况下,按照W3C的建议,您应该使用UTF8进行编码。

    这可能会奏效。

        2
  •  0
  •   wwkudu    8 年前

    在我的电脑自动进行Windows更新后,我遇到了这种问题。我想有些设置改变了。因此,我转到邮件格式并寻找编辑器选项-->校对---->自动更正选项,并用“键入时自动套用格式”选项卡下的“智能引号”取消选中“直引号”。然后我比较了我的电脑和朋友的设置(他们还没有应用最新的Windows更新-大约在2016年10月12日-)。我检查和取消检查的东西来匹配他。现在它正常工作,不再有这种问题。(到目前为止,另一位朋友也开始出现同样的问题。我还没有问他是否得到了自动窗口更新。)祝你好运。

        3
  •  0
  •   user1780242    7 年前

    我最近遇到了一个类似的问题,电子邮件中插入了一个笑脸表情符号。文字看起来很好,直到高兴的脸,然后一切都是中国的或类似的。邮件以短信形式发送,显然无法呈现笑脸。我们将发件人的格式更改为html,问题得到了解决。