Страница 1 из 1
Добавление вложений в письмо
Добавлено: 31 июл 2009, 21:11
andrey1981
Доброе время суток.
Помогите пожалуйста.
Есть небольшой код отправки писем с вложением
Dim OutApp As Object
Dim OutMail As Object
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "
andrey@mail.ru"
.cc = ""
.BCC = ""
.Subject = "Invoice"
.Body = ""
.Attachments.Add ("C:\Databases\31.07.2009\941-25255.xls")
Что дописать, чтобы добавить в письмо все файлы из папки ?
Спасибо
Re: Добавление вложений в письмо
Добавлено: 02 авг 2009, 22:50
Teslenko_EA
Здравствуйте
andrey1981.
попобуйте заменить строку ".Attachments.Add ("C:\Data..."
подобным кодом:
Код: Выделить всё
On Error Resume Next
Dim theFolder, s, i
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
s = "C:\Databases\31.07.2009\"
If Len(s) = 0 Then 'Quit
Else
i = Len(Dir(s, vbDirectory))
If i = 0 Then
'Каталог не существует
Else
Set theFolder = FSO.GetFolder(s)
Dim AFile, theFiles
Set theFiles = theFolder.Files
For Each AFile In theFiles
OutMail.Attachments.Add AFile.Name
Next
End If
End If
Err.Clear
Set FSO = Nothing
Евгений.
Re: Добавление вложений в письмо
Добавлено: 03 авг 2009, 10:05
andrey1981
Пробую так,
Dim OutApp As Object
Dim OutMail As Object
Dim theFolder, s, i
Dim FSO
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "
andrey@mail.ru"
.cc = ""
.BCC = ""
.Subject = "Invoice"
.Body = ""
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
s = "C:\Databases\31.07.2009\"
If Len(s) = 0 Then 'Quit
Else
i = Len(Dir(s, vbDirectory))
If i = 0 Then
Else
Set theFolder = FSO.GetFolder(s)
Dim AFile, theFiles
Set theFiles = theFolder.Files
For Each AFile In theFiles
OutMail.Attachments.Add AFile.Name
Next
End If
End If
err.Clear
Set FSO = Nothing
.send
End With
и не видит он файлы, пустое письмо отправляет

Re: Добавление вложений в письмо
Добавлено: 03 авг 2009, 13:27
Teslenko_EA
Здравствуйте
andrey1981.
ошибка
AFile.Name - возвращает имя файла без пути расположения,
Код: Выделить всё
Dim OutApp As Object, OutMail As Object, theFolder, s, i, FSO
Set OutApp = CreateObject("Outlook.Application")
OutApp.Session.Logon
Set OutMail = OutApp.CreateItem(0)
With OutMail
.To = "andrey@mail.ru"
.Subject = "Invoice"
'On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
s = "C:\TMP\"
If Not Len(s) = 0 Then
i = Len(Dir(s, vbDirectory))
If Not i = 0 Then
Set theFolder = FSO.GetFolder(s)
Dim AFile, theFiles
Set theFiles = theFolder.Files
For Each AFile In theFiles
[B]s = AFile
.Attachments.Add s[/B]
Next
End If
End If
Err.Clear
Set FSO = Nothing
.send
End With
...
Евгений.
Re: Добавление вложений в письмо
Добавлено: 03 авг 2009, 14:45
andrey1981

Спасибо большое!
Всё работает!
Re: Добавление вложений в письмо
Добавлено: 13 сен 2009, 13:22
FlashManKazan
Всем, добрый день!
Воспользовался приведенным здесь кодом. Спасибо очень помогло.
У меня вопрос: при отправке нескольких писем подряд, Outlook каждый раз задает вопрос: типа в целях безопасности подтвердите, что это не вирус пытается письмо отослать и т.д., при этом нажать кнопку "Да" можно только через 5 секунд, когда 3 письма - это не страшно, но когда приходится отправлять по 100 писем в день, это очень утомительно. Подскажите, можно ли избавиться от этого запроса?