当前位置:  开发笔记 > 编程语言 > 正文

为什么我的D2009 exe会生成带有名为ATTnnnnn.DAT的附件的电子邮件

如何解决《为什么我的D2009exe会生成带有名为ATTnnnnn.DAT的附件的电子邮件》经验,为你挑选了1个好方法。

当D2007中编译的相同源代码生成的电子邮件附件正确地用原始文件名命名时,为什么我的D2009 exe会生成带有名为ATTnnnnn.DAT的附件的电子邮件?

我正在使用D2007和D2009附带的各自的Indy库.附件中没有原始文件名可防止用户双击附件以打开它(通常附件是Excel电子表格).

注意:代码是相同的 - 只是编译器和Indy库有所不同.D2009 exe发送的附件可以保存并重命名为zzzz.xls然后正确打开 - 即电子邮件和附件正确通过 - 这只是搞砸了的电子邮件附件文件名.

有人建议附件标头已损坏.Indy被打破了吗?重现的代码是可以在许多网站上找到的股票标准代码,但我可以在必要时发布.Thx提前.



1> 小智..:

我发现了问题 - 请参阅adug.com.au邮件列表以获取解决方案的确切详细信息,但总的来说 - D2009(版本10.2.5)附带的Indy版本在IdMessageClient.pas中有2个错误在附件部分处理中设置名称=和文件名=的两行中的单位(一行号码是1222来自内存,另一行是前几行;对不起我现在在家里;我今天晚上在工作中修理了一些东西).缺少这些分号会导致附件标头形成错误,Outlook会为附件生成自己的名称.

修复是在输出name =或filename = tokens之前输出分号(;).然后Indy需要重建.

我比较了Indy的D2007版本(10.1.5),并且可以看到它始终将分号放在Content-Type行的末尾,从而避免了D2009中包含的版本的问题.

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有