2009-01-30 40 views
1

appears Delphi 2009附带的Indy 10 SMTP组件不能正确支持主题和正文中的unicode。支持UTF-8或Unicode的Delphi SMTP组件

有没有人知道一个很好的选择,或有人对Indy10做出必要的修改来解决这个问题?

+0

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

回答

-4

感谢大家的建议,我想我已经找到了一个真正有效的组件。它是一个ActiveX而不是Delphi组件,但是却有诀窍。很好很简单。

组件是Chilkat SMTP componentcode example here正是我想要的,它的工作原理!

1

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

3

我还会注意到,大多数邮件服务器可能无法在邮件主题行中正确处理Unicode。我还没有看到任何真正的统计数据,但我的猜测是,邮件服务器的一个非常健康的百分比仍然期望ascii主题行,因为我相信这是RFC的定义。

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

+0

这就是为什么您可能需要一个可以接受您的UTF-8数据并自动将其格式化为通过SMTP发送的组件的原因 - 请参阅http:// www。 perlmonks.org/?node_id=692745 – 2009-01-30 18:40:33

+3

RFC 2047定义了如何将非ASCII字符放入只有ASCII的主题中。 http://www.faqs.org/rfcs/rfc2047.html – 2009-01-30 23:47:58

1

我想看看Synapse这不妥善处理主题和正文的Unicode。您需要通过SVN存储库下载存储库,该存储库比网站上列出的供下载的版本更新。该SVN版本包括德尔福支持2009

+0

你能否解释Synapse在主题行中如何“正确”处理Unicode?它如何与7位服务器协同工作? – 2009-01-30 20:12:55

0

的bug在印第安纳波利斯10的IdHeaderoderUTF类最近发现,在编码其中包含Unicode字符的电子邮件标题时,会阻止UTF-7和UTF-8正常工作。

2

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