【问题标题】:Delphi SMTP component that supports UTF-8 or Unicode支持 UTF-8 或 Unicode 的 Delphi SMTP 组件
【发布时间】:2009-01-30 14:15:38
【问题描述】:

appears Delphi 2009 附带的 Indy 10 SMTP 组件没有正确支持主题和正文中的 unicode。

是否有人知道一个好的替代方案,或者是否有人对 Indy10 进行了必要的更改以解决此问题?

【问题讨论】:

  • 请编辑您的问题,“或”没有多大意义。引用维基百科:“UTF-8(8 位 UCS/Unicode 转换格式)是 Unicode 的可变长度字符编码”。见en.wikipedia.org/wiki/Utf-8

标签: delphi unicode smtp delphi-2009 indy


【解决方案1】:

我还要注意,大多数邮件服务器可能无法正确处理邮件主题行中的 Unicode。我还没有看到任何关于这方面的真实统计数据,但我的猜测是,相当一部分邮件服务器仍然期望 ascii 主题行,因为我相信这就是 RFC 的定义。

(当然可以对消息体进行编码以确保它通过。)

【讨论】:

【解决方案2】:

您可以使用 Indy 10 查看此解决方案(在俄罗斯字符集上测试)

http://dev-doc.blogspot.com/2012/08/delphi-indy-10-ssl-and-encoding-issues.html

【讨论】:

    【解决方案3】:

    Indy 10 自 D2009 的初始版本以来已经更新,现在可以更好地处理 Unicode。在 Indy 的 SVN 中查看当前的 Tiburon 快照。

    【讨论】:

      【解决方案4】:

      我肯定会看 nSoftware.com 的 IPWorks。他们的最新版本应该完全符合 Delphi 2009。

      【讨论】:

        【解决方案5】:

        我会查看Synapse,它可以正确处理主题和正文中的 unicode。您需要通过SVN 存储库下载存储库,该存储库比网站上列出的可供下载的版本更新。 SVN 版本包括对 Delphi 2009 的支持。

        【讨论】:

        • 您能解释一下 Synapse 如何“正确”处理主题行中的 Unicode 吗?它如何与 7 位服务器一起工作?
        • 我想它只是遵循 RFC 2047。
        • 通过正确编码主题行来遵循 RFC 2047 规范。我有很多客户使用我的产品来支持各种其他字符集,而且效果非常好。
        【解决方案6】:

        EasyMail 表示它支持 Rob 提到的 RFC 2047 处理非 ascii 主题行:

        http://www.componentsource.com/products/easymail-objects/summary.html

        【讨论】:

          【解决方案7】:

          最近在 Indy 10 的 IdHeaderoderUTF 类中发现了一个错误,该错误会阻止 UTF-7 和 UTF-8 在对包含 Unicode 字符的电子邮件标头进行编码时正常工作。

          【讨论】:

            【解决方案8】:

            感谢大家的建议,我想我找到了一个真正有效的组件。它是一个 ActiveX 而不是 Delphi 组件,但可以解决问题。漂亮又简单。

            组件是 Chilkat SMTP componentcode example here 完全符合我的要求,而且有效!!!

            【讨论】:

            • 谢谢弗朗西斯科您想详细说明一下吗?
            猜你喜欢
            • 2014-10-04
            • 2010-12-23
            • 2020-03-22
            • 2018-08-07
            • 1970-01-01
            • 2021-08-01
            • 1970-01-01
            • 2010-10-05
            • 1970-01-01
            相关资源
            最近更新 更多