Я создаю сообщение электронной почты, используя объект 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()
, он сохранит действительный файл на диске.
Это проблема в моем коде, или это настройка почтового сервера или что-то в этом роде?