我正在使用 CDO 对象(和 VB6,但这并不重要)创建一封电子邮件。
With New CDO.Message
.To = "<address>"
.Subject = "Manifest test 8"
.Organization = "<company>"
.From = "<address>"
.Sender = .From
With .Configuration
.Fields(cdoSendUsingMethod).Value = cdoSendUsingPort
.Fields(cdoSMTPServer).Value = "192.168.0.4"
.Fields.Update
End With
With .AddAttachment("c:\import\customermanifestOURACCOUNT11122008110032.dat")
.Fields(cdoContentDisposition).Value = "attachment; filename=""Consignor.dat"""
.Fields.Update
End With
.Send
End With
如您所见,该消息是空的,并且包含我在电子邮件中重命名的附件。
附件是一个固定宽度的 ASCII 文本文件,其中包含我们系统的一些输出,每行一条记录,用 CRLF 分隔。
当消息被发送时,所有的 CR 都会被删除附件,因此接收者会得到一个只有 LF 的文件,因此已损坏。
我尝试更改ContentEncoding
为 7bit 和 base64,没有工作。
我尝试将ContentMediaType
附件设置为text/plain
,没有用。
添加后我尝试不重命名附件,没有用。
ContentMediaType
附件的默认设置为,application/octet-stream
所以我无法弄清楚为什么(以及通过什么)它首先被更改。
如果我.SaveToFile()
在 之后立即执行附件.Send()
,它会将有效文件保存在磁盘上。
这是我的代码中的问题,还是邮件服务器设置或其他问题?