Страница 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


и не видит он файлы, пустое письмо отправляет :confused:

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
:D Спасибо большое!

Всё работает!

Re: Добавление вложений в письмо

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