Създавам имейл съобщение, използвайки 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()
, той записва валиден файл на диска.
Това проблем ли е в моя код, или е настройка на пощенския сървър или нещо подобно?