Delphi 2009 附带的 Indy 10 SMTP 组件似乎不能正确支持主题和正文中的 unicode 。
有谁知道一个好的替代方案,或者是否有人对 Indy10 进行了必要的更改来解决这个问题?
我还要注意,大多数邮件服务器可能无法在邮件主题行中正确处理 Unicode。我还没有看到任何关于此的真实统计数据,但我的猜测是邮件服务器的一个非常健康的百分比仍然期望 ascii 主题行,因为我相信这是 RFC 的定义。
(当然可以对消息正文进行编码以确保它通过。)
您可以使用 Indy 10 查看此解决方案(在俄罗斯字符集上测试)
http://dev-doc.blogspot.com/2012/08/delphi-indy-10-ssl-and-encoding-issues.html
Indy 10 自 D2009 的初始版本以来已经更新,现在可以更好地处理 Unicode。查看 Indy 的 SVN 中当前的 Tiburon 快照。
我肯定会从 nSoftware.com 看 IPWorks。他们的最新版本应该完全兼容 Delphi 2009。
EasyMail 说它支持 Rob 提到的 RFC 2047 处理非 ascii 主题行:
http://www.componentsource.com/products/easymail-objects/summary.html
最近在 Indy 10 的 IdHeaderoderUTF 类中发现了一个错误,该错误会阻止 UTF-7 和 UTF-8 在对包含 Unicode 字符的电子邮件标头进行编码时正常工作。
感谢大家的建议,我想我找到了一个真正有效的组件。它是一个 ActiveX 而不是 Delphi 组件,但可以解决问题。很好很简单。
该组件是 Chilkat SMTP 组件。这里的代码示例完全符合我的要求,并且可以正常工作!!!