1

Тема: CDO.Message: Отправка файла

Доброго Всем времени суток!
Помогите разобраться с проблемой отправки файла. Есть шаблон Excel. Записываю в него кое-какие данные, сохраняю под новым именем. Отправляю его при помощи CDO.Message
Письмо приходит, файл прикреплён, однако открыть его не могу. Вываливается сообщение "Документ поврежден и не может быть открыт".
Процедура отсылки письма

Function CDOMessage(varAddress, strPathFile)
    Dim objMessage
    Set objMessage = CreateObject("CDO.Message")
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xx.xx.xxxx.x" 
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = xx
    objMessage.BodyPart.Charset ="windows-1251"
    objMessage.Subject = "Мониторинг ПВД"
    objMessage.From = "no-reply@yyyy.ru"
    objMessage.To = varAddress 
    objMessage.AddAttachment strPathFile
    objMessage.Configuration.Fields.Update
    objMessage.Send
End Function

сам созданный файл прекрасно открывается. объектные переменные уничтожаю ДО отправки письма, т.е. файл ничто не держит...

Спасибо!

2

Re: CDO.Message: Отправка файла

Домовой, всё-таки покажите, на всякий случай, весь код.

3

Re: CDO.Message: Отправка файла

Option Explicit

Dim fso
Dim fil
Dim WshShell
Dim CurDir
Dim objExcel
Dim objWorkBook

Set WshShell = WScript.CreateObject("WScript.Shell")
CurDir=WshShell.CurrentDirectory
Set objExcel = CreateObject("Excel.Application") 
Set objWorkBook = objExcel.Workbooks.Open(CurDir & "\MonitorPVD.xlt")

objExcel.range("B16")="Некоторые данные"
objExcel.range("B19")="Иные данные"
objExcel.DisplayAlerts=False
objExcel.ActiveWorkbook.SaveAs CurDir & "\MonitorPVD.xls"
objExcel.Quit

Set objExcel=Nothing
Set fil=Nothing
Set fso=Nothing
CDOMessage "MyAddress@yyyyy.ru", CurDir & "\MonitorPVD.xls"

'************************************************************
Function CDOMessage(varAddress, objFile)
    Dim objMessage
    Set objMessage = CreateObject("CDO.Message")
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xx.xx.xx.x" 'strSmtpServer
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' strSmtpPort
    objMessage.BodyPart.Charset ="windows-1251"
    objMessage.Subject = "Мониторинг ПК ПВД"
    objMessage.From = "no-reply@xxx.ru"
    objMessage.To = varAddress 
    objMessage.AddAttachment objFile
    objMessage.Configuration.Fields.Update
    objMessage.Send
End Function

4 (изменено: badik, 2013-02-19 16:42:31)

Re: CDO.Message: Отправка файла

Отсутствует тело сообщения
    objMessage.Textbody = "mymy"
без него размер прикрепленного файла 12 байт

Function CDOMessage(varAddress, objFile)
    Dim objMessage
    Set objMessage = CreateObject("CDO.Message")
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "xx.xx.xx.x" 'strSmtpServer
    objMessage.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25 ' strSmtpPort
    objMessage.BodyPart.Charset ="windows-1251"
    objMessage.Subject = "Мониторинг ПК ПВД"
    objMessage.Textbody = "mymy"
    objMessage.From = "no-reply@xxx.ru"
    objMessage.To = varAddress 
    objMessage.AddAttachment objFile
    objMessage.Configuration.Fields.Update
    objMessage.Send
End Function 

5

Re: CDO.Message: Отправка файла

badik
Спасибо! Заработало!
я и подумать не мог, что это может влиять