我使用ColdFusion构建CSV文件,然后将其作为电子邮件附件发送给用户。
我会自行复制电子邮件,在Gmail和Outlook中以CSV文件形式接收附件,并可以在Microsoft Excel中将附件作为CSV文件打开。
我使用CFMAILPARAM
标记附加文件。我试过两种方式发送它:
<cfmailparam file="C:/temp/myfile.csv" type="text/plain" />
这会导致用户看到.txt
文件。当我收到电子邮件时,标题显示为:
Content-Type: text/plain
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename*=myfile.csv
使用:
<cfmailparam file="C:/temp/myfile.csv" type="text/csv" />
这会导致用户看到.dat
文件,但无法在Microsoft Excel中打开该文件。当我收到电子邮件时,标题显示为:
Content-Type: text/csv
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename*=myfile.csv
知道这里发生了什么吗?
答案 0 :(得分:4)
您是通过Microsoft Exchange服务器向外发送邮件吗?Lotus Notes收件人是否将其视为winmail.dat文件?如果是这样,那么问题是您发送邮件的邮件服务器被配置为以外部收件人的TNEF格式而不是本机MIME格式发送。 TNEF是一种Microsoft格式,而不是标准,虽然许多邮件服务器确实正确地转换它 - 这可以解释为什么gmail收件人没有问题。最新的Lotus Domino版本也可以转换它,但可能没有配置该功能。
请参阅此MS Knowledge Base article以防止它在发送方和/或此IBM Tech Note打开在服务器上解码入站端TNEF的功能。
答案 1 :(得分:1)
事实证明解决方案非常简单。发送的文件在文件名中有空格。当我从文件名中删除空格时,文件被正常接收。
答案 2 :(得分:0)
DAT文件是否为UUEncoded?如果是这样,您的问题可能与此有关。
http://support.microsoft.com/default.aspx?scid=KB;en-us;q138053
几年前有一个OpenNTF项目允许您阅读DAT文件。
http://www.openntf.org/Projects/pmt.nsf/ProjectLookup/WinmailExtractor
答案 3 :(得分:0)
请Domino管理员将以下内容添加到邮件服务器上的notes.ini中:
TNEFEnableConversion = 1
这将确保Domino可以处理由Exchange服务器发送的电子邮件,并以MS TNEF格式封装。